Cod sursa(job #2887461)

Utilizator AnaTurcituTurcitu Ana-Maria AnaTurcitu Data 9 aprilie 2022 18:04:05
Problema Branza Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <iostream>
#include <fstream>

std::ifstream f("branza.in");
std::ofstream g("branza.out");

int N, S, T, c[100001], p[100001], cumparat[100001], cost, i, j, t1;

int min1()
{
    int k, min2=999999;
    for(k=i+1; k<=j-1; k++)
    {
        if(c[k] + S*(j-k) < min2)
            min2 = c[k] + S*(j-k);
    }
    return min2;
}

int main()
{
    f>>N>>S>>T;
    for(i=1; i<=N; i++)
        f>>c[i]>>p[i];

    for(i=1; i<N; i++)
    {
        if(cumparat[i] == 0)
        {
            cost += c[i]*p[i];
            cumparat[i] = 1;
        }

        if(i+T <= N)
            t1 = i+T;
        else t1 = N;

        for(j=i+1; j<=t1; j++)
            if(c[i] + S*(j-i) <= c[j] && cumparat[j]==0)
                if(c[i] + S*(j-i) < min1())
                {
                    cost += (c[i] + S*(j-i))*p[j];
                    cumparat[j] = 1;
                }
    }
    if(cumparat[i] == 0)
    {
        cost += c[i]*p[i];
        cumparat[i] = 1;
    }
    g<<cost;
}