Cod sursa(job #330344)

Utilizator cosmin79Carabet Cosmin Andrei cosmin79 Data 9 iulie 2009 17:15:20
Problema Datorii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <stdio.h>
#define N 15050
#define P 100005
int n,m;
int s[N],r;
char v[P];
void read()
{
	scanf("%d %d\n",&n,&m);
	int i,nr=0;
	fgets(v+1,P,stdin);
	for (i=1; (v[i]>='0' && v[i]<='9') || v[i]==' '; i++)
	{
		if (v[i]>='0' && v[i]<='9')
			nr=nr*10+(v[i]-'0');
		if (v[i]==' ')
		{
			r++;
			s[r]=s[r-1]+nr;
			nr=0;
		}
		if ((v[i+1]<'0' || v[i+1]>'9') && v[i+1]!=' ')
		{
			r++;
			s[r]=s[r-1]+nr;
			nr=0;
		}
	}
}
void solve()
{
	int i,j,x,y,z;
	for (i=1; i<=m; i++)
	{
		scanf("%d%d%d",&x,&y,&z);
		if (x==1)
			printf("%d\n",s[z]-s[y-1]);
		else
			for (j=y; j<=n; j++)
				s[j]-=z;
	}
}
int main()
{
	freopen("datorii.in","r",stdin);
	freopen("datorii.out","w",stdout);
	read();
	solve();
	return 0;
}