Cod sursa(job #1851148)

Utilizator StarGold2Emanuel Nrx StarGold2 Data 19 ianuarie 2017 13:49:05
Problema Progresii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <bits/stdc++.h>
using namespace std;

ifstream  in( "progresii.in" );
ofstream out( "progresii.out" );

const int DIM = 1e5 + 5;

int p[DIM];

inline long long cst( long long l, int p, int m ) {
    return ( l - p ) / m + 1;
}

int main( void ) {
    ios::sync_with_stdio( false );

    long long k, l; int n, m;
    in >> n >> m >> k >> l;

    long long nr = 0;
    for( int i = 1; i <= n; i ++ ) {
        in >> p[i];
        nr += cst( l, p[i], m );
    }

    if( nr > k )
        out << -1 << "\n";
    else {
        for( int i = 1; i <= n; i ++ ) {
            nr -= cst( l, p[i], m );

            int t;

            if( k - nr - 1 == 0 )
                t = l - p[i] + 1;
            else
                t = ( l - p[i] ) / ( k - nr - 1 );

            if( t == 0 )
                t = 1;

            nr += cst( l, p[i], t );
            out << t << "\n";
        }
    }

    return 0;
}