Pagini recente »
Istoria paginii utilizator/liviaioanar
|
Istoria paginii utilizator/liamilitaru2008
|
Istoria paginii utilizator/negruadelin
|
Cod sursă (job #641378)
|
Cod sursă (job #802548)
Cod sursă (job
#802548)
/*
Planeta Korhal abundă în minerale valoroase. Tu ai fost trimis pe această planetă ca să extragi X kilograme de minerale. Inițial dispui de un SCV (Space Construction Vehicle). SCV-ul colectează câte M kg de minerale pe zi. Dacă dorești, poți construi un nou SCV, ceea ce costă C kg de minerale și durează T zile întregi. Noul SCV construit începe și el să colecteze câte M kg de minerale
pe zi. Poți construi astfel oricâți SCV, dar nu poți construi doi SCV simultan.
De câte zile întregi ai nevoie pentru a aduna cel puțin X kg de minerale?
*/
#include <bits/stdc++.h>
using namespace std;
ifstream in("scv.in");
ofstream out("scv.out");
int main()
{
int c,t,m,x,qty,nrscv=1,day=1,stock=0,start=-1000;//qty - quantity per day
bool training=false;
in>>c>>t>>m>>x;
while (stock<x)
{
if (training && day-start==t)
{
training=false;
nrscv++;
}
int needed=x-stock;
qty=nrscv*m;
int without=needed/qty;
if (needed%qty>0)
without++;
int with=t+(needed+c-t*qty)/(qty+m);
if ((needed-t*qty)%(qty+m)>0)
with++;
bool train_scv=with<without;
if (train_scv && stock>=c && !training)
{
training=true;
stock-=c;
start=day;
}
day++;
stock+=qty;
}
out<<day-1;
return 0;
}