社区讨论

RE求调

P7870「Wdoi-4」兔已着陆参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@lobnmi2w
此快照首次捕获于
2023/10/29 23:57
2 年前
此快照最后确认于
2023/11/04 04:43
2 年前
查看原帖
在学校用这题模测A了回来重做一边RE

CODE

CPP
#include<bits/stdc++.h>
using namespace std;
long long n,op,l,r,k,ans;
stack<long long>s;
long long read(){
	long long s=0,f=1;
	char ch=getchar();
	while (!isdigit(ch)){
		if (ch=='-') f=-1;
		ch=getchar();
	}
	while (isdigit(ch)){
		s=(s<<3)+(s<<1)+(ch^48);
		ch=getchar();
	}
	return s*f;
}
int main(){
	n=read();
	for (int i=1;i<=n;i++){
		op=read();
		if (op&1){
			l=read(),r=read();
			s.push(l);
			s.push(r);
		}
		else{
			ans=0;
			k=read();
			r=s.top();s.pop();
			l=s.top();s.pop();
			while (k>r-l+1){
				ans+=(l+r)*(r-l+1)/2;
				k-=r-l+1;
				r=s.top();s.pop();
				l=s.top();s.pop();
			}
			if (k<r-l+1){
				ans+=(r-k+1+r)*k/2;
				s.push(r-k);
			}
			if (k==r-l+1) ans+=(l+r)*k/2;
			cout<<ans<<endl;
		}
	}
	return 0;
}
样例前两个能过(60、44),第三个(124)RE了

回复

2 条回复,欢迎继续交流。

正在加载回复...