Cod sursa(job #164110)

Utilizator hadesgamesTache Alexandru hadesgames Data 23 martie 2008 15:42:21
Problema Progresii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <stdio.h>
long long n,m,k,l,s,i,x,a[100005],b[100005],c[100005];
int main()
{
    FILE *in,*out;
    n=1;
     out=fopen("progresii.out","w");
    in=fopen("progresii.in","r");
    fscanf(in,"%lld%lld%lld%lld",&n,&m,&k,&l);
    for (i=1;i<=n;i++)
    {
        fscanf(in,"%lld",&a[i]);
        c[i]=m;
        b[i]=(l-a[i]+1)/m;
        s+=b[i];
        a[i]=l-a[i]+1;
     }
     if (s>k)
     {
        fprintf(out,"-1\n");
        fclose(in);
        fclose(out);
        return 0;
     }
     for (i=1;i<=n;i++)
     {
        x=k-s+b[i];
        c[i]=a[i]/x;
        if (!a[i]%x)
            c[i]++;
         x=s;
        s+=a[i]/c[i]-b[i];
        if (a[i]%c[i])
            s++;
        b[i]=x-s+b[i];
     }
     for (i=1;i<=n;i++)
     {
        fprintf(out,"%lld\n",c[i]);
     }
     fclose(in);
     fclose(out);
     return 0;
}