提交时间:2025-12-27 15:27:42
运行 ID: 39225
#include<bits/stdc++.h> #define int long long #define doub long double #define PII pair<int,int> #define fir first #define sec second #define lb(x) ((x)&(-(x))) #define ctz __builtin_ctzll #define clz __builtin_clzll #define PC __builtin_popcountll using namespace std; #define PIB pair<int,bool> struct Node{ int id,rk,Exp; Node(int _id=0,int _rk=0,int _Exp=0){id=_id,rk=_rk,Exp=_Exp;} }; const int N=1e6+7; int n,m; PIB c[N][3]; int Mr[N]; vector<Node> v[N]; int Ans[N]; signed main(){ ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); #ifndef ONLINE_JUDGE freopen("1.in","r",stdin); freopen("1.out","w",stdout); #endif cin>>n>>m; for(int i=1;i<=m;i++){ int x1,x2,x3,v1,v2,v3; cin>>x1>>x2>>x3>>v1>>v2>>v3; c[i][0]=PIB(x1,v1);c[i][1]=PIB(x2,v2);c[i][2]=PIB(x3,v3); if(c[i][0]>c[i][1])swap(c[i][0],c[i][1]); if(c[i][1]>c[i][2])swap(c[i][1],c[i][2]); if(c[i][0]>c[i][1])swap(c[i][0],c[i][1]); v[c[i][0].fir].push_back(Node(i,1,c[i][0].sec)); v[c[i][1].fir].push_back(Node(i,2,c[i][1].sec)); v[c[i][2].fir].push_back(Node(i,3,c[i][2].sec)); } for(int i=1;i<=m;i++)Mr[i]=1; for(int i=1;i<=n;i++){ int Dt[2]={0,0}; for(auto p:v[i]){ int id=p.id,rk=p.rk,Exp=p.Exp; if(Mr[id]==0||Mr[id]==8)continue; Dt[Exp]=8-Mr[id],Dt[!Exp]=(rk==3?0:(1<<rk))-Mr[id]; } int r=(Dt[0]>=Dt[1]?0:1); Ans[i]=r; for(auto p:v[i]){ int id=p.id,rk=p.rk,Exp=p.Exp; if(Mr[id]==0||Mr[id]==8)continue; Dt[Exp]=(i==Exp?8:(rk==3?0:(1<<rk))); } } for(int i=1;i<=n;i++)cout<<Ans[i]<<" "; cout<<endl; }