Pagini recente »
Profil tzutu
|
Utilizatori înregistrați la Olimpiada pe scoala clasa a IX-a
|
Monitorul de evaluare
|
Istoria paginii runda/2015oliscoala1112/clasament
|
Cod sursă (job #113918)
Cod sursă (job
#113918)
#include<stdio.h>
long long scv, dur, mpscv, goal, mpd, minerals, goal, t, terminat, aftershave, b4, jump;
int decide(int a, int b)
{
if(a % b == 0)
{
return a / b;
}
else
{
return a / b + 1;
}
}
int main ()
{
FILE *in,*out;
in = fopen("scv.in", "r");
out = fopen("scv.out", "w");
fscanf(in, "%d%d%d%d", &scv, &dur, &mpscv, &goal);
mpd = mpscv;
minerals = 0;
t = 0;
terminat = 0;
if(scv >= goal)
{
terminat = 1;
fprintf(out, "%d\n", decide(goal, mpscv));
}
while(terminat == 0)
{
while(minerals < scv)
{
minerals = minerals + mpd;
t = t + 1;
}
b4 = decide((goal - minerals), mpd);
aftershave = dur + decide((goal - (minerals - scv) - (dur * mpd)),(mpd + mpscv));
if(aftershave < b4)
{
minerals = minerals - scv;
minerals = minerals + (mpd * dur);
mpd = mpd + mpscv;
t = t + dur;
}
else
{
terminat = 1;
fprintf(out, "%lld\n", t + b4);
}
}
fclose(in);
fclose(out);
return 0;
}