rt,第四个 Subtask WA 了 5 个点
一看 unsigned long long 炸了
翻了翻讨论区也没见写高精度的而且这明明是道橙题a
#include<bits/stdc++.h>
using namespace std;
long long n,op,l,r,k,L[500005],R[500005],h;
unsigned long long f(int _L,int _R)
{
if((_L+_R)%2==0)
return (_L+_R)/2*(_R-_L+1);
else
return (_R-_L+1)/2*(_L+_R);
}
int main()
{
cin>>n;
while(n--)
{
cin>>op;
if(op==1)
{
cin>>l>>r;
L[++h]=l;
R[h]=r;
}
if(op==2)
{
unsigned long long ans=0;
cin>>k;
while(k)
{
if(k>=R[h]-L[h]+1)
{
ans+=f(L[h],R[h]);
k-=R[h]-L[h]+1;
h--;
}
else
{
ans+=f(R[h]-k+1,R[h]);
R[h]-=k;
k=0;
}
}
cout<<ans;
}
}
return 0;
}