Cod sursă (job #672429)

Utilizator avatar TAVISE Vasiliu ALEX TAVISE IP ascuns
Problemă SCV (clasele 9-10) Compilator cpp-32 | 1,13 kb
Rundă Arhiva de probleme Status evaluat
Dată 28 oct. 2022 15:43:53 Scor 80
#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(produse(r+pas) < x)
            r+=pas;
        pas/=2;
    }
    r++;
    out<<r;
}