I - The Hive 恶心模拟
const int INF = 1000000000; const double eps = 1e-8; const int maxn = 30000; char hive[100][200]; char op[10]; int change(char t) { return 2*(t - 'A' + 1); } int d[100],u[100],en[100]; void init() { u[2] = 34;u[4] = 36;u[6] = 38;u[8] = 40;u[10] = 42; u[12] = 40;u[14] = 38;u[16] = 36;u[18] = 34; d[2] = 10;d[4] = 8;d[6] = 6;d[8] = 4;d[10] = 2; d[12] = 4;d[14] = 6;d[16] = 8;d[18] = 10; } int main() { // freopen("in.txt","r",stdin); // freopen("ot.txt","w",stdout); int n; while(cin>>n) { init(); int ans = 0; repf(i,1,90) repf(j,1,19) hive[i][j] = ' '; int s = 2; int e = 18; repd(i,9,1) { if(i%2){ for(int j = s;j <= e;j += 4) hive[i][j] = '_'; }else{ int mark = 0; for(int j = s;j <= e;j += 2) { if(mark%2 == 0) hive[i][j] = '/'; else hive[i][j] = '\\'; mark++; } } en[i] = e; s++;e--; } s = 2; e = 18; repf(i,37,45) { if(i%2){ for(int j = s;j <= e;j += 4) hive[i][j] = '_'; }else{ int mark = 0; for(int j = s;j <= e;j += 2) { if(mark%2 == 0) hive[i][j] = '\\'; else hive[i][j] = '/'; mark++; } } en[i] = e; s++;e--; } repf(i,10,36) { if(i%4 == 2) { int mark = 0; for(int j = 1;j <= 19;j += 2) { if(mark%2 == 0) hive[i][j] = '/'; else hive[i][j] = '\\'; mark++; } en[i] = 19; } if(i%4 == 0) { int mark = 0; for(int j = 1;j <= 19;j += 2) { if(mark%2 == 0) hive[i][j] = '\\'; else hive[i][j] = '/'; mark++; } en[i] = 19; } if(i%4 == 3) { s = 4; for(int j = s;j<=16;j+=4) hive[i][j] = '_'; en[i] = 16; } if(i%4 == 1) { s = 2; for(int j = s;j<=18;j+=4) hive[i][j] = '_'; en[i] = 18; } } repf(i,1,n) { scanf("%s",op); int k = change(op[0]); if(u[k] < d[k]) continue; if(hive[u[k] + 4][k] == op[1]) { ans++; hive[u[k]+4][k] = ' '; u[k] += 4; } else { hive[u[k]][k] = op[1]; u[k] -= 4; } } printf("The number of candy is %d.\n",ans); repf(i,1,45) { if(i%2 && i > 1) { repf(j,1,en[i]) if(hive[i][j] != ' ' && hive[i - 1][j] == ' ') hive[i - 1][j] = hive[i][j]; } } repf(i,1,45) { if(i%2 && i>1) continue; if(i<=8 && i!= 1) en[i]++; repf(j,1,en[i]) { printf("%c",hive[i][j]); } cout<<endl; } } return 0; }
posted on 2013-12-01 18:07 keep trying 阅读(196) 评论(0) 编辑 收藏 举报