2013-12-15 226 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」,打破循環。去掉它。

相關問題