Pagini recente »
Istoria paginii runda/tema1-dopaj-5
|
Istoria paginii runda/concurs__6_11
|
doua_baloane_in_desert
|
Diferențe pentru runda/oji-2023-antrenament-ffa-v2 între reviziile 21 și 22
|
Cod sursă (job #108343)
Cod sursă (job
#108343)
#include<stdio.h>
using namespace std;
int sup (int a, int b)
{
int v=a/b;
if(b*v<a)
v++;
return v;
}
int main ()
{
FILE *in, *out;
in = fopen ("scv.in", "r");
out = fopen ("scv.out", "w");
int c,t,m,x,nr=1,d=0,s=0,minim,val,p;
fscanf(in,"%d%d%d%d",&c,&t,&m,&x);
val=minim=sup(x,m);
d=sup(c,m);
s=m*d;
while(s<=x && s-c+nr*m*t<=x && val<=minim)
{
minim=val;
//construieste un scv
s-=c;
d+=t; s+=nr*m*t;
nr++;
val=d+sup(x-s,nr*m);
//actualizeaza la urmatoarea posibila constructie
if(s<c)
{
p=sup(c-s,nr*m);
s+=nr*m*p;
d+=p;
}
}
if(val<minim)
minim=val;
fprintf(out,"%d",minim);
return 0;
}