Pentru această operație este nevoie să te autentifici.
Cod sursă (job #672432)
Utilizator |
|
IP | ascuns |
---|---|---|---|
Problemă | SCV (clasele 9-10) | Compilator | cpp-32 | 1,15 kb |
Rundă | Arhiva de probleme | Status | evaluat |
Dată | 28 oct. 2022 15:47:26 | Scor | 90 |
#include <bits/stdc++.h>
#define debug(x) cerr << #x << " " << x << "\n"
#define debugs(x) cerr << #x << " " << x << " "
#pragma GCC optimize("Ofast,unroll-loops")
#pragma GCC target("sse,sse2,sse3,ssse3,popcnt,abm,mmx,tune=native")
using namespace std;
ifstream in("scv.in");
ofstream out("scv.out");
int m, c, t, x;// x total, t timp de constructie
// m minerale pe zi, c cost SCV
long long produse(long long p)
{
int scv = 1;
long long sfarsit = m*p;
long long minerale=0;
for(int i=0; i<p; i++)
{
if(minerale >= c && c < (p - t - i) * m)
{
minerale-=c;
sfarsit -= c;
sfarsit += (p - t - i) * m;
i+=t-1;
minerale += t*m*scv;
scv++;
}
else if(c >= (p - t - i) * m)
{
break;
}
else
minerale+=m*scv;
}
return sfarsit;
}
int main()
{
in>>c>>t>>m>>x;
long long r = 0, pas=1<<22;
while(pas)
{
if(r+pas <= x/m && produse(r+pas) < x)
r+=pas;
pas/=2;
}
r++;
out<<r;
}