Cod sursa(job #2364000)

Utilizator crion1999Anitei cristi crion1999 Data 3 martie 2019 19:51:41
Problema Combinari Scor 0
Compilator cpp-64 Status done
Runda pregatire_cls12_oji Marime 1.14 kb
#include <iostream>
#include <fstream>
#define NMAX 10000
#define inf 0x3f3f3f3f
using namespace std;
ifstream fi("scara3.in");
ofstream fo("scara3.out");

int N, K, L;
int energizante[NMAX];
int apa[NMAX];
int dp[NMAX];

int totalCost = 0;

int main()
{
    fi >> N;
    fi >> K;

    for(int i = 1; i <= K; ++i)
    {
        int a, b;
        fi >> a >> b;
        apa[a + b] = a;

    }
    fi >> L;
    for(int i = 1; i <= L; ++i)
    {
        int a, b;
        fi >> a >> b;
        for(int i = 1; i <= b; ++i)
            energizante[a + 2 * i] = a;


    }

    for(int i = 2; i <= N + 1; ++i)
    {
        dp[i] = dp[i-1] + 1;

        if(apa[i] != 0)
        {
            if(dp[apa[i]] + 1 < dp[i])
                dp[i] = dp[apa[i]] + 1;
        }

        if(energizante[i] != 0)
        {
            int costBack = 0;
            if(dp[energizante[i]] + 1 < dp[i])
            {
                dp[i] = dp[energizante[i]] + 1;
                costBack = (i - energizante[i] + 1) / 2;
            }
            totalCost += costBack;
        }
    }
    fo << dp[N+1] <<" "<< totalCost;
}