Pagini recente » Cod sursa (job #105433) | Cod sursa (job #2002760) | Cod sursa (job #781146) | Cod sursa (job #1542649) | Cod sursa (job #654448)
Cod sursa(job #654448)
#include<fstream>
#define zeros(x) (x&(-x))
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int a[15010];
int sum ( int nr )
{
int s = 0, i;
for ( i = nr; i >= 1; i -= zeros(i) )
s += a[i];
return s;
}
void achita ( int i, int cant, int n )
{
for ( int j = i; j <= n; j += zeros(j) )
a[j] += cant;
}
int main()
{
int n, m, i, t, v, x;
bool val;
fin >> n >> m;
for ( i = 1; i <= n; i++ )
{
fin >> x;
achita ( i,x,n );
}
for ( i = 1; i <= m; i++ )
{
fin >> val >> t >> v;
if ( val )
{
fout << sum ( v ) - sum ( t-1 ) << '\n';
}
if ( !val )
{
achita ( t,-v,m );
}
}
fin.close();
fout.close();
return 0;
}