- C++
图灵王的团子 题解 100AC
- @ 2026-6-20 17:14:37
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 条评论
目前还没有评论...