Cod sursa(job #190259)

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