Cod sursa(job #299935)

Utilizator SheepBOYFelix Liviu SheepBOY Data 7 aprilie 2009 09:46:37
Problema Branza Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<stdio.h>
struct Dq{
	long long p,c;
	int cp;
};
Dq deque[100000];
Dq aux;
int st,end;
int n,t,s,ft,cop;
long long sum;
void add(Dq a);
int main()
{
	freopen("branza.in","r",stdin);
	freopen("branza.out","w",stdout);
	scanf("%d%d%d",&n,&s,&t);
	for(int i=1;i<=n;++i)
	{
		
		scanf("%d%d",&aux.c,&aux.p);
		
		cop=aux.p;
		aux.p=i;
		
		if(deque[st].p>t)
			++st;
		
		add(aux);
		
		sum+=deque[st].c*deque[st].cp;
		
	}
	printf("%lld",sum);
	return 0;
}
void add(Dq a)
{
	int i;
	i=st;
	if(ft)
	{
	while(a.c>deque[i].c+s&&deque[i].c)
	{
		deque[i].c+=s;
		deque[i].cp=cop;
		++i;
	}
	end=i;
	}
	ft=1;
	deque[i].p=aux.p;
	deque[i].c=aux.c;
	deque[i].cp=cop;
}