Cod sursa(job #2638273)
Utilizator | Data | 27 iulie 2020 16:55:03 | |
---|---|---|---|
Problema | Arbori indexati binar | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.59 kb |
//#include <iostream>
#include <fstream>
using namespace std;
typedef long long ll;
ifstream cin("aib.in");
ofstream cout("aib.out");
const ll Nmax=10099;
int main(){
ll n,m,s[Nmax],k,a,b;
cin >>n>>m;
for(int i=1;i<=n;i++){
cin>>k;
s[i]=k+s[i-1];
}
while(m--){
cin >>k;
if(k<2){
cin >>a>>b;
if(k){
cout<<s[b]-s[a-1]<<"\n";
continue;
}
for(int i=a;i<=n;i++){
s[i]+=b;
}
}else if(k==2){
cin >>b;
bool da=0;
for(int i=1;i<=n;i++){
if(s[i]==b){
cout <<i<<"\n";
break;
}
if(s[i]>b)break;
}
}
}
return 0;
}