Cod sursa(job #2106400)

Utilizator DruffbaumPopescu Vlad Druffbaum Data 15 ianuarie 2018 18:46:10
Problema Progresii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <cstdio>

const int MAXN = 1e5;

long long v[MAXN];

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