2017-10-11 8 views
-3

問題へのリンクは "https://www.codechef.com/OCT17/problems/PERFCONT" です。私はこの問題の解決方法を考え出しましたが、間違った答えが出ています。codechefで間違った答えを得る:バランスのとれたコンテスト

私のソリューション:

#include<iostream> 
using namespace std; 
int main(){ 
long long int hard,cakewalk,t,temp; 
long long int n,p; 
cin>>t; 
while(t--){ 
    hard = cakewalk = 0; 
    cin>>n; 
    cin>>p; 
    while(n--){ 
     cin>>temp; 
     if(temp<=(p/10)) 
      hard++; 
     if(temp>=(p/2)) 
      cakewalk++; 
     if(hard>2 || cakewalk>1){ 
      break; 
     } 
    } 
    if(hard==2 && cakewalk ==1){ 
     cout<<"yes"<<endl; 
    } 
    else{ 
     cout<<"no"<<endl; 
    } 
} 
return 0; 
} 

私たちはハードとCakewalk社タイプの問題の数を計算する必要があり、そこに正確に2と1をそれぞれあれば、それはバランスの取れたコンテストだ集まってきたように。 これを解決するために親切に私を助けてください。

答えて

0

hard > 2 || cakewalk > 1入力ライン全体を読み取らずに折れているため、WAが表示されています。だから、それが破られ、与えられたテストケースに対して正しい入力を与えるが、次に入力される数字は技術的に次のテストケースの入力ではないので失敗する。最初のテストケースの残りの部分です。入力の場合

2 
4 100 
1 1 1 1 
2 100 
1 50 

最初のテストケースでは、あなたは、あなたが取る次の入力が1に対し、(それがnであることを考慮して)されるので、ライン3から1 1 1を読んだ後に入力を取っスキップ次のテストケースでは、nは2にする必要があります。

が、これは動作するはずの削除:

if(hard>2 || cakewalk>1){ 
      break; 
    } 
+0

おかげで男は、それが動作するようになりました。 –

関連する問題