Cod sursa(job #190263)

Utilizator AndreyPAndrei Poenaru AndreyP Data 21 mai 2008 12:53:14
Problema Progresii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<stdio.h>
long long n,m,k,l;
long long p[100010];
long long v[100010];
long long s,ram;
int main()
{
	freopen("progresii.in","r",stdin);
	freopen("progresii.out","w",stdout);
	scanf("%lld%lld%lld%lld",&n,&m,&k,&l);
	int i,aux;
	//float aux1;
	s=n;
	for(i=1; i<=n; i++)
	{
		scanf("%lld",&p[i]);
		v[i]=(l-p[i])/m;
		
		s+=v[i];
	}
	if(s>k)
	{
		printf("-1\n");
		return 0;
	}
	ram=k-s;
	for(i=1; i<=n; i++)
	{
		ram+=v[i];
		if(ram)
		{
			aux=(l-p[i])/ram;
			if((l-v[i])%ram)
				aux++;
		}
		else
			aux=l-p[i]+1;
		//printf("%f\n",aux1);
		if(aux<m)
		{
			v[i]=(l-p[i])/aux;
			ram-=v[i];
			printf("%d\n",aux);
		}
		else
		{
			printf("%lld\n",m);
			ram-=v[i];
		}
	}
	return 0;
}