Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

Re:到底哪里表达错误了,这道题在zju上输入没有-1中止,是不是测试数据没改过来啊?

Posted by senlin at 2006-03-17 12:01:33 on Problem 1076
In Reply To:到底哪里表达错误了,这道题在zju上输入没有-1中止,是不是测试数据没改过来啊? Posted by:xiaomi at 2003-06-25 17:56:37
> #include <iostream.h>   
> 
> int n,i,j,k,l,rest;   
> char bowler[12];   
> int pin[22];   
> char record [12] [3];   
> int score[11] ;   
> bool stop,spare=false;   
> 
> int records;   
> int scores;   
> 
> char rec(int a)   
> {   
>     if ((a==0)&&(spare==false))   
>     {   
>         return 88;   
>     }   
>     else if ((a==0)&&(spare==true))   
>     {   
>         spare=false;   
>         return 47;   
>     }   
>     else if ((a!=0)&&(spare==false))   
>     {   
>         spare=true;   
>         rest=a;   
>         if (a!=10)   
>             return 58-a;   
>         else   
>             return 45;   
>     }   
>     else   
>     {   
>         spare=false;   
>         if (a!=rest)   
>             return 48+rest-a;   
>         else   
>             return 45;   
>     }   
> }   
> int sco(int a,int b,int c)   
> {   
>     if (a==0)   
>     {   
>         if (c!=-1)   
>             return b==0?30-c:20-c;   
>         else   
>         {   
>             stop=true;   
>             return 0;   
>         }   
>     }   
>     else if (b==0)   
>     {   
>         if (c!=-1)   
>         {   
>             i++;   
>             return 20-c;   
>         }   
>         else   
>         {   
>             stop=true;   
>             return 0;   
>         }   
>     }   
>     else   
>     {   
>         if (b!=-1)   
>         {   
>             i++;   
>             return 10-b;   
>         }   
>         else   
>         {   
>             stop=true;   
>             return 0;   
>         }   
>     }   
> }   
> int main()   
> {   
>     for (i=0;i<12;i++)   
>         bowler[i]=32;   
>     for (i=0;i<12;i++)   
>         for (j=0;j<3;j++)   
>             record[i][j]=32;   
>     for (i=0;i<22;i++)   
>         pin[i]=-1;   
>     n=i=j=k=l=rest=0;
> 	stop=spare=false;
>     while(cin>>bowler)   
>     {   
>         do   
>         {   
>             cin>>pin[j];   
>             j++;   
>         }   
>         while (pin[j-1]!=-1);  
>         pin[21]=-1; 
> 		//input 
> 
>         i=0;   
>         while (pin[i]!=-1)   
>         {   
>             if (spare==false)   
>                 record[k][0]=rec(pin[i]);   
>             else   
>                 record[k][1]=rec(pin[i]);   
>             if (pin[i]==0)   
>                 k++;   
>             else if (spare==false)   
>                 k++;   
>             i++;   
>         }   
>            
>         if ((record[10][0]!=32)&&(record[9][1]==32))   
>         {   
>             record[9][1]=record[10][0];   
>             if ((record[10][1]!=32)||((record[9][0]==88)&&(record[9][1]==88)&&(record[11][0]==32)))   
>                 k--;       
>             record[10][0]=32;   
>         }   
>         else if (record[10][0]!=32)   
>         {   
>             record[9][2]=record[10][0];   
>             if (record[10][0]==88)   
>                 k--;   
>             record[10][0]=32;   
>         }   
>         if (record[10][1]!=32)   
>             record[9][2]=record[10][1];   
>             record[10][1]=32;   
>         if (record[11][0]!=32)   
>         {   
>             record[9][2]=record[11][0];   
>             k--;   
>             record[11][0]=32;   
>         }   
>         if ((record[9][0]==88)&&(record[9][1]==88)&&(record[9][2]==88))   
>             k--;     
>         if ((record[k][0]>=49&&record[k][0]<=57)||(record[k][0]==45))   
>             k++;   
>         if (k!=0)
> 			if (record[k-1][0]==32)  
> 				k--;  
> 		if (record[9][0]!=88&&record[9][1]!=47)
> 			record[9][2]=32;
>         //record 
>         i=0;   
>         score[0]=0;   
>         while ((pin[i]!=-1)&&(l<10))  
>         {   
>             score[l]+=sco(pin[i],pin[i+1],pin[i+2]);   
>             score[l+1]=score[l];   
>             if (stop==true)   
>                 break;   
>             l++;   
>             i++;   
>         }   
>         //score   
>         records=k;   
>         scores=l;   
> 
>         for (i=0;i<12;i++)   
>             cout<<bowler[i];   
>         for (i=0;i<records;i++)   
>             cout<<" "<<record[i][0]<<record[i][1]<<record[i][2];
>         cout<<endl<<"            ";   
>         for (i=0;i<scores;i++)   
>         {   
>             if (score[i]<10)   
>                 cout<<"   "<<score[i];   
>             else if (score[i]<100)   
>                 cout<<"  "<<score[i];   
>             else   
>                 cout<<" "<<score[i];   
>         }   
>         cout<<endl<<endl;   
>         n++;   
>         for (i=0;i<12;i++)   
>             bowler[i]=32;   
>         for (i=0;i<12;i++)   
>             for (j=0;j<3;j++)   
>             record[i][j]=32;   
>         for (i=0;i<22;i++)   
>             pin[i]=-1;   
>         i=j=k=l=rest=0;   
>         stop=spare=false;   
>     }   
> 
>     return 0;   
> }   
> 

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator