#include #include #include #include #include #define FOREACH(it,t) for(__typeof(t.begin()) it=t.begin(); it!=t.end(); it++) #define FOR(q,n) for(int q=0;q PII; map > mapa; #define MAX 10000 PII data[2][MAX]; int x[MAX],y[MAX]; int n; void init(){ FOR(q,n) scanf("%d %d",&x[q],&y[q]); FOR(q,n) data[0][q]=mp(x[q],y[q]); FOR(q,n) data[1][q]=mp(y[q],x[q]); mapa.clear(); } void solve(int i){ sort(data[i],data[i]+n); if (i==1) FOR(q,n) data[i][q]=mp(data[i][q].se,data[i][q].fi); for (int q=0;qfi!=mypos.fi) oldpos=*it; // printf("oldpos %d %d \n",oldpos.fi,oldpos.se); int cnt=0; while (cnt<2) { if (mypos==spos) {cnt++; } PII newpos; FOREACH(it,mapa[mypos]) if (*it!=oldpos) newpos=*it; if (cnt==1) { // printf("%d %d -> %d %d ",mypos.fi,mypos.se,newpos.fi,newpos.se); if (mypos.fi==newpos.fi) { if (newpos.se>mypos.se) printf("N"); else printf("S"); } else { if (newpos.fi>mypos.fi) printf("E"); else printf("W"); } // printf("\n"); } oldpos=mypos; mypos=newpos; } printf("\n"); //FOREACH(it,mapa) //{printf("point %d %d \n",it->fi.fi,it->fi.se); // FOREACH(it2,it->se) printf("%d %d\n",it2->fi,it2->se); // //} } int main(){ while (scanf("%d",&n),n>0) { init(); solve(0); solve(1); vypis(); } }