Cod sursa(job #1994534)

Utilizator PopoviciRobertPopovici Robert PopoviciRobert Data 25 iunie 2017 11:20:45
Problema Progresii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <bits/stdc++.h>
#define MAXN 100001

long long t[MAXN + 1];
long long p[MAXN + 1];

int main() {
    FILE *fi, *fout;
    int i, n, m;
    long long  l, k;
    fi=fopen("progresii.in" ,"r");
    fout=fopen("progresii.out" ,"w");
    fscanf(fi,"%d %d %lld %lld " ,&n, &m, &k, &l);
    for(i = 1; i <= n; i++)
        fscanf(fi,"%lld " ,&p[i]);
    for(i = n; i >= 1; i--)
        t[i] = t[i + 1] + 1 + (l - p[i]) / m;
    if(t[1] > k)
        fprintf(fout,"-1\n");
    else
        for(i = 1; i <= n; i++) {
            long long x = (l - p[i]) / (k - t[i + 1]) + 1;
            fprintf(fout,"%lld\n" ,x);
            k -= 1 + (l - p[i]) / x;
        }
    fclose(fi);
    fclose(fout);
    return 0;
}