Cod sursa(job #307197)
| Utilizator | Data | 23 aprilie 2009 17:40:53 | |
|---|---|---|---|
| Problema | Datorii | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 1.12 kb |
#include<iostream>
#include<fstream>
using namespace std;
int main(){
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int m,n,A[15001],v[15001],s1,s2,O[3],x;
fin>>n>>m;
int i,j;
for (i=1;i<=n;i++){
fin>>A[i];
x=(i^(i-1))&i;
v[i]=0;
for (j=0;j<x;j++)
v[i]+=A[i-j];
}
for (i=0;i<m;i++){
fin>>O[0]>>O[1]>>O[2];
if (O[0]){
s1=0;
s2=0;
while (O[2]>0){
s1+=v[O[2]];
x=(O[2]^(O[2]-1))&O[2];
O[2]-=x;
}
x=0;
O[1]--;
while (O[1]>0){
s2+=v[O[1]];
x=(O[1]^(O[1]-1))&O[1];
O[1]-=x;
}
fout<<s1-s2<<'\n';
}
else{
while (O[1]<=n){
v[O[1]]-=O[2];
x=(O[1]^(O[1]-1))&O[1];
O[1]+=x;
}
}
}
}
