Pagini recente »
Monitorul de evaluare
|
Tema 2 Cerc V-VI
|
Istoria paginii runda/2020-01-19-test-7/clasament
|
Borderou de evaluare (job #563670)
|
Cod sursă (job #672438)
Cod sursă (job
#672438)
#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
minerale+=m*scv;
if(c >= (p - t - i - (c-minerale)/(m*scv)) * m || c >= (p - t - i) * m)
{
break;
}
}
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;
}