#include<iostream>
#include<stack>
using namespace std;
int main(){
stack<int> stk;
int n, o, l, r, k, ans; cin>>n;
for(int i = 0; i < n; i++){
cin>>o;
if(o == 1){
cin>> l >> r;
for(int j = l; j <= r; j++){
stk.push(j);
}
}
if(o == 2){
cin>>k;
for(int j = 0; j < k; j++){
ans += stk.top(); stk.pop();
}
cout<< ans << endl;
ans = 0;
}
}
return 0;
}
看了看别人的代码,都挺长的,但是题面里面说n,l,r≤100n,l,r≤100 ,我就觉得这样直接开栈应该能拿一部分分。但是全挂了。
这个代码样例1可过,样例2看花眼了没测。
评测记录
还有一个问题是,RT的这份代码,测试结果是
6
1 1 14
2 5
60
1 14 19
1 1 9
2 8
44
2 10
124
和样例相同。
但是如果把int的变量和栈都改成longlong,怎么就成了:
6
1 1 14
2 5
107
60
1 14 19
1 1 9
2 8
44
可能是我太笨了不适合,不适合搞OI吧,5555555