Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
同是逛wa,求解释。。。#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; #define maxn 28 int n, id[231]; struct M_G{ int now, rank[maxn], ans; int get[34]; char name[2]; }m[maxn], g[maxn]; void init(){ scanf("%d", &n); for(int i=0; i<n; ++i) { scanf("%s", m[i].name); id[m[i].name[0] ]=i; m[i].now=0; m[i].ans=-1; } for(int i=0; i<n; ++i) { scanf("%s", g[i].name); id[g[i].name[0] ]=i; g[i].ans=-1; } char str[33]; getchar(); for(int i=0; i<n; ++i) { gets(str); int x, size=strlen(str), j=0, k=0; while(j < size){ if(str[j]>='a' && str[j]<='z') x=id[str[j] ]; if(str[j]>='A' && str[j]<='Z') m[x].rank[k++]=id[str[j] ]; j++; } } for(int i=0; i<n; ++i) { gets(str); int x, size=strlen(str), j=0, k=0; while(j < size) { if(str[j]>='A' && str[j]<='Z') x=id[str[j] ]; if(str[j]>='a' && str[j]<='z') g[x].rank[k++]=id[str[j] ]; ++j; } } /*for(int i=0; i<n; ++i){ for(int j=0; j<n; ++j) cout << g[i].rank[j]; cout << endl; }*/ // while(1); } void solve(){ while(1) { for(int i=0; i<n; ++i) g[i].get[0]=0; for(int i=0; i<n; ++i) if(m[i].ans == -1) { int now=m[i].now; int y=m[i].rank[now]; g[y].get[++g[y].get[0] ]=i; m[i].now++; } for(int i=0; i<n; ++i) if(g[i].get[0]){ for(int j=0; j<n; ++j){ int x=g[i].rank[j], k; for(k=1; k<=g[i].get[0]; ++k) if(x == g[i].get[k]) break; if(k <= g[i].get[0]) { if(g[i].ans == -1) { g[i].ans=x; m[x].ans=i; } else { int y=g[i].ans; m[y].ans=-1; g[i].ans=x; m[x].ans=i; } break; } } } bool ff=1; for(int i=0; i<n; ++i) if(m[i].ans == -1) { ff=0; break; } if( ff ) break; } for(int i=0; i<n; ++i) printf("%s %c\n", m[i].name, m[i].ans+'A'); } int main(int argc, char**argv){ int t; scanf("%d", &t); while( t-- ) { init(); solve(); if(t) puts(""); } system("pause"); return (0); } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator