cjb-poi2010guilds
从 Trac 迁移的文章
这是从旧校内 Wiki 迁移的文章,可能存在一些样式问题,您可以向 memset0 反馈。
原文章内容如下:
{{{
#include <cstdio>
#include <iostream>
#include <cmath>
#include <vector>
#define rep(i,n) for(int i=1;i<=n;++i)
using namespace std;
int n,m;
int col[210000];
vector<int> g[210000];
int flag;
void dfs(int x,int c)
{
col[x]=c;
for(auto p:g[x])
if (col[p]==-1)dfs(p,c^1);
}
int main()
{
cin>>n>>m;
rep(i,n)g[i].clear();
rep(i,m)
{
int x,y;
scanf("%d%d",&x,&y);
g[x].push_back(y);
g[y].push_back(x);
}
rep(i,n)col[i]=-1;
for(int i=1;i<=n;i++)
if (col[i]==-1)dfs(i,0);
flag=1;
rep(i,n)flag&=(g[i].size()>0);
if (!flag)
{
puts("NIE");
return 0;
}
puts("TAK");
rep(i,n)puts(col[i]?"K":"S");
}
}}}
#include <cstdio>
#include <iostream>
#include <cmath>
#include <vector>
#define rep(i,n) for(int i=1;i<=n;++i)
using namespace std;
int n,m;
int col[210000];
vector<int> g[210000];
int flag;
void dfs(int x,int c)
{
col[x]=c;
for(auto p:g[x])
if (col[p]==-1)dfs(p,c^1);
}
int main()
{
cin>>n>>m;
rep(i,n)g[i].clear();
rep(i,m)
{
int x,y;
scanf("%d%d",&x,&y);
g[x].push_back(y);
g[y].push_back(x);
}
rep(i,n)col[i]=-1;
for(int i=1;i<=n;i++)
if (col[i]==-1)dfs(i,0);
flag=1;
rep(i,n)flag&=(g[i].size()>0);
if (!flag)
{
puts("NIE");
return 0;
}
puts("TAK");
rep(i,n)puts(col[i]?"K":"S");
}