Pagini recente » Cod sursa (job #623763) | Cod sursa (job #2559691) | Cod sursa (job #2273723) | Cod sursa (job #3137711) | Cod sursa (job #2383290)
#include <fstream>
using namespace std;
#define maxn 100001
ifstream cin("abi.in");
ofstream cout("abi.out");
int N,M,s[maxn],op;
void read(int N){
s[0]=0;
for(int i=1; i<=N; i++){
cin>>s[i];
s[i]+=s[i-1];
}
}
void solve(int op){
int x,y;
if(op==0){
cin>>x>>y;
for(;x<=N; x++)
s[x]+=y;
} else if(op==1){
cin>>x>>y;
cout<<s[y]-s[x-1]<<'\n';
}else if(op==2){
int ok=1,i;
cin>>x;
for(i=1; i<=N&&ok&&s[i]<=x; i++){
if(s[i]==x)
ok=0;
}
if(ok==0)
cout<<i-1<<'\n';
else cout<<-1<<'\n';
}
}
int main()
{
cin>>N>>M;
read(N);
for(;M;M--){
cin>>op;
solve(op);
}
}