2013-12-15 65 views
0

Codeforces问题373A- http://codeforces.com/problemset/problem/373/A简单的解决方案

而不是多个,如果用于计算每个数字元素的一些说法,我已经试过排序array.I后检查给定的条件不正确的输出,我得到了不正确的输出第一个测试案例(在问题的链接中给出)。我的方法有什么问题?我的解决方案中应该更改哪些内容。

我的解决办法:

#include<iostream> 
#include<cstring> 
using namespace std; 

int k,i,j,a; 
char panel[17],temp,output[4]; 

int main() 
{ 
    cin>>k; 
    for(i=0;i<16;i++) 
    cin>>panel[i]; 

    for(i=0;i<16;i++) //Bubble sort. 
    { 
     for(j=0;j<(15-i);j++) 
     { 
      if(panel[j]>panel[j+1]) 
      { 
       temp=panel[j+1]; 
       panel[j+1]=panel[j]; 
       panel[j]=temp; 
      } 
     } 
    } 

    a=1; 
    strcpy(output,"YES"); 
    for(i=0;i<16;i++) 
    { 
     if(panel[i]==panel[i+1]) 
     ++a; 
     else 
     a=1; 

     if(a>(2*k)); 
     { 
      strcpy(output,"NO"); 
      break; 
     } 
    } 
    cout<<output; 
} 

回答

4

你有if语句后分号:

if(a>(2*k)); 

这意味着,它总是会复制 “NO”,打破循环。去掉它。

相关问题