Cod sursa(job #1852576)

Utilizator catalinrebegeaUNIBUC-Claudia Catarig catalinrebegea Data 20 ianuarie 2017 22:32:35
Problema Progresii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <bits/stdc++.h>
#define Nmax 100005

using namespace std;

int n,m;
long long k,L,d[Nmax],sum[Nmax];

int main()
{
    int i,x;
    ifstream cin("progresii.in");
    ofstream cout("progresii.out");
    cin>>n>>m>>k>>L;
    for(i=1;i<=n;++i)
    {
        cin>>d[i]; d[i]=L-d[i];
    }
    for(i=n;i;--i) sum[i]=sum[i+1]+d[i]/m;
    if(sum[1]+n > k)
    {
        cout<<"-1\n";
        return 0;
    }
    k-=n;
    for(i=1;i<=n;++i)
    {
        if(k==sum[i+1]) x=d[i]+1;
        else
        {
            x=d[i]/(k-sum[i+1]);
            if((x-1)*(k-sum[i+1]) >= d[i]) --x;
            if(x*(k-sum[i+1]) < d[i]) ++x;
        }
        cout<<x<<"\n";
        k-=d[i]/x;
    }
    return 0;
}