ZOJ1057 Undercut

      简单题,就是输出时注意格式问题:输出一行结果后需要加入一个空白行。

#include  < iostream >
using   namespace  std;

int  main()
{
    
int  n;
    
int  a[ 20 ],b[ 20 ],i = 0 ,SumA,SumB;
    
while (cin >> n && n != 0 )
    {
        
if  (i !=   0 )
        {
// 题目输出格式要求,第一次不用加入空白行
            cout  <<  endl;
        }
        SumA 
=   0 ;
        SumB 
=   0 ;
        
// 输入A的出牌顺序
         for (i = 0 ;i < n; ++ i)
        {
            cin
>> a[i];
        }
        
// 输入B的出牌顺序
         for  (i = 0 ;i < n; ++ i)
        {
            cin
>> b[i];
        }
        
for  (i = 0 ;i < n; ++ i)
        {
            
if  (a[i] == b[i])
            {
// 相等,双方均不得分
                 continue ;
            }
            
else   if  (a[i] == 1 && b[i] == 2 )
            {
// A牌面是1,B牌面是2,A得6分
                SumA  +=   6 ;
                
continue ;
            }
            
else   if (b[i] == 1 && a[i] == 2 )
            {
// B牌面是1,A牌面是2,B得6分
                SumB  +=   6 ;
                
continue ;
            }
            
else   if  (a[i] - b[i] == 1 )
            {
// A的牌面恰好比B的牌面大,B得到两人牌面和的分数
                SumB  +=  a[i] + b[i];
                
continue ;
            }
            
else   if  (b[i] - a[i] == 1 )
            {
// B的牌面恰好比A的牌面大,A得到两人牌面和的分数
                SumA  +=  a[i] + b[i];
                
continue ;
            }
            
else   if  (a[i] - b[i] > 1 )
            {
// 不是特殊情况下,A的牌面比B的牌面大于,A得到自己牌面分
                SumA  +=  a[i];
                
continue ;
            }
            
else   if  (b[i] - a[i] > 1 )
            {
// 不是特殊情况下,B的牌面比A的牌面大于,B得到自己牌面分
                SumB  +=  b[i];
                
continue ;
            }
        }
        cout
<< " A has  " << SumA << "  points. B has  " << SumB << "  points. " << endl;
    }
    
return   0 ;
}

你可能感兴趣的:(cut)