问题的链接是" https://www.codechef.com/OCT17/problems/PERFCONT" 我已经找到了解决这个问题的方法,但我得到了错误的答案。
我的解决方案:
#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;
}
正如我已经收集的那样,我们必须计算Hard和Cakewalk类型问题的数量,如果分别只有2和1,那么这是一场平衡的比赛。 请帮助我解决这个问题。
答案 0 :(得分:0)
你正在获得WA,因为你在hard > 2 || cakewalk > 1
没有阅读整个输入行时就会中断。因此,在它中断并给出给定测试用例的正确输入之后,它将失败,因为下一次输入的数字在技术上不是下一个测试用例的输入。这是第一个测试用例的剩余部分。
输入:
2
4 100
1 1 1 1
2 100
1 50
对于第一个测试用例,从第3行读取1 1 1后跳过输入。因此,您接下来的输入为1(考虑为n),而对于下一个测试用例,n应为2。
删除它应该有效:
if(hard>2 || cakewalk>1){
break;
}