Cod sursa(job #2500060)

Utilizator andreitudorpAndrei Tudor Popescu andreitudorp Data 27 noiembrie 2019 10:38:13
Problema Branza Scor 0
Compilator cpp-64 Status done
Runda guritza Marime 1.08 kb
#include <fstream>

using namespace std;

ifstream cin("branza.in");
ofstream cout("branza.out");

#define MAXN 100005

int n, s, t;
long long ans;
int p[MAXN];
int c[MAXN];

int main()
{
    cin >> n >> s >> t;
    int x, y;

    for(int i = 0; i < n; i++)
    {
        cin >> p[i] >> c[i];
    }

    int sum = 0;
    ans = p[0] * c[0];

    for(int i = 0; i < n; i++)
    {
        sum = 0;

        if(p[i] * (c[i] + c[i+1]) + (s * c[i+1]) < (p[i] * c[i]) + (p[i+1] * c[i+1]))
        {
            sum += p[i] * (c[i] + c[i+1]) + (s * c[i+1]);
            for(int j = 2; j < t; j++)
            {
                if(sum + p[i] * c[i+j] + (s * c[i+j] * j) < sum + (p[i] * c[i]) + (p[i+j] * c[i+j]))
                {
                    sum += p[i] * c[i+j] + (s * c[i+j] * j);
                    i++;
                }
                else
                    break;
            }
            ans += sum;
        }
        else
        {
            ans += p[i+1] * c[i+1];
            i++;
        }
    }

    cout << ans;
    return 0;
}