https://oj.qdturing.cn/d/A1002/p/SYSTEMP629

#include<bits/stdc++.h>
using namespace std;
#define int long long
struct Node{
	int l,r;
};
signed main(){
	ios::sync_with_stdio(false);
	cin.tie(nullptr);cout.tie(nullptr);
	int k,n,l,r;
	stack<Node> st;
	cin>>n;
	while(n--){
		int in;cin>>in;
		if(in==1){
			cin>>l>>r;
			st.push({l,r});
		}else{
			int cnt=0;
			cin>>k;
			while(k>st.top().r-st.top().l+1){
				cnt+=(st.top().l+st.top().r)*(st.top().r-st.top().l+1)/2;
				k-=st.top().r-st.top().l+1;
				st.pop();
			}
			if(k==st.top().r-st.top().l+1){
				cnt+=(st.top().l+st.top().r)*k/2;
				st.pop();
			}else{
				cnt+=(st.top().r-k+1+st.top().r)*k/2;
				st.top().r-=k;
			}
			cout<<cnt<<'\n';
		} 
	}
}

0 条评论

目前还没有评论...