本题测试数据有问题代码来自提交记录下面的代码不能ac。
#include<bits/stdc++.h> using namespace std; //咋就这么坑呢,ai改ai就80了? int n,a[1005],ans,ubs,bs,wf,gl; int ai; int main(){ cin>>n; for(int i=0;i<n;i++){ cin>>ai; bs+=ai; if(ai>=240)gl=1; //一定被隔离 if(ai+ubs>=240){ //办这件事就会隔离,那么假定不办 wf+=400; //往返 ubs=ai; //办事用掉的时间重置 }else{ ubs+=ai; //不往返累计办事用掉的时间 } } //如果必然隔离:办事+隔离 //否则为min(办事+隔离,办事+往返) if(gl){ cout<<bs+10080+400; }else{ cout<<min(bs+10080+400,bs+wf+400); } return 0; }
改成这样就可以ac
#include<bits/stdc++.h> using namespace std; //咋就这么坑呢,a[i]改ai就80了? int n,a[1005],ans,ubs,bs,wf,gl; int main(){ cin>>n; for(int i=0;i<n;i++){ cin>>a[i]; bs+=a[i]; if(a[i]>=240)gl=1; //一定被隔离 if(a[i]+ubs>=240){ //办这件事就会隔离,那么假定不办 wf+=400; //往返 ubs=a[i]; //办事用掉的时间重置 }else{ ubs+=a[i]; //不往返累计办事用掉的时间 } } //如果必然隔离:办事+隔离 //否则为min(办事+隔离,办事+往返) if(gl){ cout<<bs+10080+400; }else{ cout<<min(bs+10080+400,bs+wf+400); } return 0; }
全部评论
(0) 回帖