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 |
有没有人提供点BT数据啊,我都WA疯了想不到什么特殊情况了..... #include <iostream> using namespace std; //1076 char name[13],ans[12][4]; int pins[22],score[12],sframe,len,sscore; void input(){for(int i=1;;i++){scanf("%d",&pins[i]);if(pins[i]==-1){len=i;break;}}} int tscore(int x,int y){if(x==-1||y==-1) return 0;else if(x==0) return 20-y;else return 10-y;} int tscore(int x){if(x==-1) return 0;return 10-x;} void tchar(int x,int y,int z,int k) { ans[k][0] = 'X'; if(y==-1){ans[k][1] = '\0';return;} if(k==10) { if(y==0){ans[k][1]='X';if(z==-1){ans[k][2]='\0';return;}if(z==0)ans[k][2]='X';else if(z==10)ans[k][2]='-';else ans[k][2]=(char)(10-z+'0');} else if(y==10){ans[k][1]='-';if(z==-1){ans[k][2]='\0';return;}if(z==0)ans[k][2]='/';else if(z==10)ans[k][2]='-';else ans[k][2]=(char)(10-z+'0');} else{ans[k][1]=(char)(10-y+'0');if(z==-1){ans[k][2]='\0';return;}if(z==0)ans[k][2]='/';else if(z==y)ans[k][2]='-';else ans[k][2]=(char)(y-z+'0');} ans[k][3]= '\0'; } else ans[k][1] = '\0'; } void tchar(int x,int z,int k) { if(x==10) ans[k][0]='-'; else ans[k][0] = (char)(10-x+'0'); ans[k][1]='/'; if(k!=10||z==-1)ans[k][2]='\0'; else { if(z==0) ans[k][2]='X'; else if(z==10) ans[k][2]='-'; else ans[k][2] = char(10-z+'0'); ans[k][3]='\0'; } } void tchar1(int x,int y,int k) { if(x==10) ans[k][0]='-'; else ans[k][0] = char(10-x+'0'); if(y==-1){ans[k][1]='\0';return;} if(x==y) ans[k][1]='-'; else ans[k][1] = char(x-y+'0'); ans[k][2]='\0'; } int cal(int s,int &k)//计算从第s次击打开始的第K帧的分数和结果 { if(pins[s]==0)//第一次击打完全 { score[k] = score[k-1]+tscore(pins[s+1],pins[s+2])+10; tchar(pins[s],pins[s+1],pins[s+2],k); if(pins[s+2]!=-1&&pins[s+1]!=-1) sscore++; k++; return s+1; } else if(pins[s+1]==0)//第二次击打完全 { score[k] = score[k-1]+tscore(pins[s+2])+10; tchar(pins[s],pins[s+2],k); if(pins[s+2]!=-1&&pins[s+1]!=-1) sscore++; k++; return s+2; } else //两次都没有击打全 { score[k] = score[k-1]+tscore(pins[s],pins[s+1]); tchar1(pins[s],pins[s+1],k); if(pins[s+2]!=-1&&pins[s+1]!=-1) sscore++; k++; return s+2; } } void solve() { int s=1;sframe = sscore = 1; while(s<=len&&sframe<=10&&pins[s]!=-1) s=cal(s,sframe); } void output() { int i; /*for(i=1;i<=52;i++) printf("%d",i%10);//标尺 printf("\n");*/ printf("%-13s",name);//姓名 for(i=1;i<sframe;i++)printf("%-4s",ans[i]);//记分牌 printf("\n "); for(i=1;i<sscore;i++)printf("%4d",score[i]);//分数 printf("\n\n"); } int main(void) { while (scanf("%s",name)!=EOF) { input(); solve(); output(); memset(name,'\0',sizeof(name)); } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator