Pagini recente »
Monitorul de evaluare
|
Istoria paginii utilizator/ioanaaleexandru
|
Rating Rotileanu Alexandru (Firealex2)
|
Istoria paginii utilizator/mugur
|
Cod sursă (job #108712)
Cod sursă (job
#108712)
#include <stdio.h>
#include <stdlib.h>
int main()
{
int c, t, m, x;
int day;
int predictday;
int predictday2;
int scv;
int current;
int delta;
FILE *in;
FILE *out;
in = fopen("scv.in", "r");
fscanf(in, "%d %d %d %d", &c, &t, &m, &x);
fclose(in);
current = 0;
day = 0;
scv = 1;
if (c < x) {
while (current < x) {
delta = ((c - current) % (scv * m) == 0) ? (c - current) / (scv * m) : (c - current) / (scv * m) + 1;
delta = (c > current) ? delta : 0;
day += delta;
current += scv * m * delta;
predictday = day + (x - current) / (scv * m);
predictday = ((x - current) % (scv * m) == 0) ? predictday : predictday + 1;
predictday2 = day + (x - (current - c) - scv * m * t) / ((scv + 1) * m) + t;
predictday2 = ((x - (current - c) - scv * m * t) % ((scv + 1) * m) == 0) ? predictday2 : predictday2 + 1;
if (predictday2 <= predictday) {
day += t;
current = current - c + scv * m * t;
scv++;
}
else {
day = predictday;
current = x;
}
}
}
else
day = (x % (scv * m) == 0) ? x / (scv * m) : x / (scv * m) + 1;
out = fopen("scv.out", "w");
fprintf(out, "%d\n", day);
fclose(out);
return 0;
}