#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=400005;
const int ADD=200000;
int sz;
int last[N],deg[N],col[N];
struct E {
int u,v,pre;
}e[N<<1];
void inite() {
sz=0;
memset(last,-1,sizeof(last));
}
void adde(int u,int v) {
e[sz].u=u;
e[sz].v=v;
e[sz].pre=last[u];
last[u]=sz++;
}
//加上引用符有删边的效果
void dfs(int u,int color) {
for(int& i=last[u];~i;i=e[i].pre) {
if(col[i>>1]!=-1) continue;
col[i>>1]=color;
--deg[u];--deg[e[i].v];
dfs(e[i].v,color^1);
return ;
}
}
int main() {
int n;
while(~scanf("%d",&n)) {
inite();
for(int i=0;i<n;++i) {
int x,y;scanf("%d%d",&x,&y);
y+=ADD;
adde(x,y);adde(y,x);
++deg[x];++deg[y];
}
memset(col,-1,sizeof(col));
for(int i=0;i<N;++i) {
if(deg[i]&1) dfs(i,0);
}
for(int i=0;i<N;++i) {
if(deg[i]) dfs(i,0);
}
for(int i=0;i<n;++i) printf("%c",col[i]?'b':'r');puts("");
}
return 0;
}
codeforces 547D Mike and Fish
最新推荐文章于 2020-01-22 17:53:49 发布