| Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|---|
| 38916 | 22fhq | 【S】T3 | C++ | 无测评数据 | 2 | 412 MS | 72044 KB | 1702 | 2025-11-19 19:05:34 |
#include<bits/stdc++.h> #define int long long void read(int &x){ x=0; bool neg=0; char c=getchar(); for(;!isdigit(c);c=getchar())neg=(c=='-'); for(;isdigit(c);c=getchar())x=(x<<1)+(x<<3)+(c^48); if(neg)x=-x; } #define read2(a,b) read(a),read(b) using namespace std; set<int>e[300005]; int n,m,ans[300005]; void prt(){ for(int i=1;i<=n;i++)printf("%lld ",ans[i]); } bool chk(int x,int y){ int cnt=(e[x].count(y)); for(int z:e[x])cnt+=e[y].count(z); return cnt<2; } void slv(){ read2(n,m); for(int i=1,u,v;i<=m;i++){ read2(u,v); e[u].insert(v); e[v].insert(u); } for(int i=1;i<=n;i++)ans[i]=1; for(int i=1;i<=n;i++){ if(e[i].size()==0){ ans[i]=2; ans[i==1?2:1]=3; prt(); return; } if(e[i].size()==1){ ans[i]=2; ans[*e[i].begin()]=3; prt(); return; } } for(int i=1;i<=n;i++){ if(e[i].size()==2){ for(int j=1;j<=n;j++){ if(i==j)continue; if(chk(i,j)){ ans[i]=2; ans[j]=3; prt(); return; } } } } for(int i=1;i<=n;i++){ if(e[i].size()==3){ for(int j=1;j<=n;j++){ if(i==j)continue; if(chk(i,j)){ ans[i]=2; ans[j]=3; prt(); return; } } } } } signed main(){ slv(); }