100分,最后2个不对
查看原帖
100分,最后2个不对
1618131
lizhenhua150楼主2025/2/6 21:16

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;
}

救一下

2025/2/6 21:16
加载中...