Pagini recente »
Diferențe pentru runda/clubul_premiantilor_2_pentru_toti între reviziile 2 și 1
|
Istoria paginii runda/simulare_6/clasament
|
Diferențe pentru utilizator/horsepower între reviziile 29 și 35
|
Atașamentele paginii Clasament tema11-seniori-2014-2015
|
Cod sursă (job #108397)
Cod sursă (job
#108397)
#include <cstdio>
int main () {
freopen ("scv.in", "r", stdin);
freopen ("scv.out", "w", stdout);
int C, T, M, X; //cost, timp construire, minerale pe zi, target
scanf ("%d%d%d%d", &C, &T, &M, &X);
int tNes = (X % M == 0)? (X / M) : (X / M +1);
int scvNes = X / C +1;
int mCrt = M, tCrt = 1;
int aux;
for (int scvCrt = 1; scvCrt <= scvNes && mCrt < X; scvCrt++) {
if (mCrt >= C) {
tCrt += T;
mCrt = mCrt + M * scvCrt * T - C;
}
else {
aux = ((C - mCrt) % (M * scvCrt) == 0)? ((C - mCrt) / (M * scvCrt)) : ((C - mCrt) / (M * scvCrt) +1);
tCrt += aux + T;
aux = (aux + T) * M * scvCrt - C;
mCrt += aux;
}
if (mCrt < X) {
aux = ((X - mCrt) % (M * (scvCrt +1)) == 0)? ((X - mCrt) / (M * (scvCrt +1))) : ((X - mCrt) / (M * (scvCrt +1)) +1);
//???
}
else {
aux = tCrt;
scvNes = scvCrt;
}
if (aux <= tNes) {
tNes = aux;
}
}
printf ("%d\n", tNes);
return 0;
}