Pagini recente » Cod sursa (job #3000713) | Cod sursa (job #3194272) | Cod sursa (job #1558160) | Borderou de evaluare (job #2912079) | Cod sursa (job #2383291)
#include <fstream>
using namespace std;
#define maxn 100001
ifstream cin("aib.in");
ofstream cout("aib.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);
}
}