Pagini recente » Cod sursa (job #1813320) | Cod sursa (job #1792778) | Cod sursa (job #797807) | Cod sursa (job #1528036) | Cod sursa (job #1508638)
#include<iostream>
#include<fstream>
#include<math.h>
using namespace std;
int main(){
ifstream in ("datorii.in");
int si,num;
in>>si;
in>>num;
int a[num];
for(int i=1;i<=si;i++)
in>>a[i];
int op,l1,l2,p,s1=0,s2=0;
for(int i=1;i<=num;i++){
in>>op;in>>l1;in>>l2;
if(op==0){
p=0;
while(l1<=si){
a[l1]-=l2;
while( l1 & pow(2,p)==0)
p++;
l1+=pow(2,p);
p++;
}
}
else{
l1--;s1=0;p=0;
while(l1>0){
s1+=a[l1];
while( l1 & pow(2,p)==0)
p++;
l1-=pow(2,p);
p++;
}
p=0;s2=0;
while(l2>0){
s2+=a[l2];
while(l2 & pow(2,p)==0)
p++;
l2-=pow(2,p);
p++;
}
ofstream out("datorii.out",ios::app);
out<<s2-s1<<endl;
out.close();
}
}
in.close();
return 0;
}