Cod sursa(job #2073800)

Utilizator MacoveiTiberiumacovei tiberiu MacoveiTiberiu Data 23 noiembrie 2017 18:52:35
Problema Datorii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <fstream>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int a[15009];
void update(int x, int val)
{
	a[x]=a[x]-val;
}
void query(int st, int dr)
{
	int s=0;
	if((st+dr-1)%2==0)
	{
	 	int mij=(st+dr-1)/2;
		while(st!=mij+1)
		{
			s+=a[st]+a[dr];
			++st;--dr;
		}
	}
	else 
	{
		s+=a[dr];dr-=1;
		int mij=(st+dr-1)/2;
		while(st!=mij+1)
		{
			s+=a[st]+a[dr];
			++st;--dr;
		}
	}
	fout<<s<<"\n";
}
int main(int argc, char *argv[]) 
{
	long long int n, m;
	fin>>n>>m;
	for(int i=1;i<=n;++i)
	{
		fin>>a[i];
	}
	int cer, x, val;
	for(int j=1;j<=m;++j)
	{
		fin>>cer>>x>>val;
		if(cer==1)
		{
			query(x, val);
		}
		else if(cer==0)
		{
			update(x, val);
		}
	}
}