100分,但最后俩过不去,抢救一下我
测试点信息源代码
源代码 复制
#include<bits/stdc++.h>
using namespace std;
long long a,s,d,g,z,h,r,l,q[222565445];
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>a>>s;
for(int i=1;i<=a;i++){
cin>>q[i];
}
for(int i=1;i<=a-1;i++){
//TODO
d=0;
d=q[i]+q[i+1];
if(d>s){
g=d-s;
l+=g;
q[i+1]-=g;
//TODO
}
}
cout<<l;
return 0;
}
原因是q[i+1]-g可能是非正数,改了错4个,最后的对了
#include<bits/stdc++.h>
using namespace std;
long long a,s,d,g,z,h,r,l,q[222565445];
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>a>>s;
for(int i=1;i<=a;i++){
cin>>q[i];
}
for(int i=1;i<=a-1;i++){
//TODO
d=0;
d=q[i]+q[i+1];
if(d>s){
g=d-s;
l+=g;
if(q[i+1]>g){
//TODO
q[i+1]-=g;
}else{
q[i]-=g-q[i+1];
}
//TODO
}
}
cout<<l;
return 0;
}
救一下