Pagini recente » Cod sursa (job #599016) | Statistici carmen mitru (carmen97) | Cod sursa (job #2730332) | Cod sursa (job #519199) | Cod sursa (job #2461807)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("aib.in");
ofstream cout("aib.out");
int n,m,i,t;
long long a,b;
vector<long long>x,ossz;
vector<long long>:: iterator it;
int main()
{
cin>>n>>m;
x.resize(n+1,0);
ossz.resize(n+1,0);
for(i=1;i<=n;++i)
{
cin>>x[i];
ossz[i]=ossz[i-1]+x[i];
}
while(m)
{
cin>>t;
if(t==0)
{
cin>>a>>b;
x[a]+=b;
for(i=a;i<=n;++i) ossz[i]+=b;
}
else if(t==1)
{
cin>>a>>b;
cout<<ossz[b]-ossz[a-1]<<"\n";
}
else
{
cin>>a;
it=lower_bound(ossz.begin(), ossz.end(), a);
if(*it==a) cout<<it-ossz.begin()<<"\n";
else cout<<"-1\n";
}
--m;
}
return 0;
}