2860 2023. 01. 30 15:42:22 kdb Videójáték cpp11 Elfogadva 100/100 61ms 14096 KiB
#include <iostream>
#include <vector>
#include <climits>
#define ll long long
using namespace std;

const int VEGE = INT_MIN;

int main()
{
    cin.tie(nullptr);
    cout.tie(nullptr);
    ios_base::sync_with_stdio(false);
    int T, n, m;
    cin >> T >> n;
    vector<ll>tied;
    for (size_t i = 0; i < n; i++)
    {
        int a, b;
        cin >> a >> b;
        tied.push_back(a);
        tied.push_back(-b - 1);
    }
    tied.push_back(VEGE);

    cin >> m;
    vector<ll>hanoe;
    for (size_t i = 0; i < m; i++)
    {
        int a, b;
        cin >> a >> b;
        hanoe.push_back(a);
        hanoe.push_back(-b - 1);
    }
    hanoe.push_back(VEGE);

    int teHely = 0, hanoHely = 0, unatkozasKezdet = 0, egyuttKezdet = 0, perc = 0;
    bool teJatszol = false, hanoJatszik = false;

    while (!(tied[teHely] == VEGE and hanoe[hanoHely] == VEGE))
    {
        if (abs(tied[teHely]) < abs(hanoe[hanoHely]))
        {
            if (tied[teHely] >= 0)
            {
                if (hanoJatszik) egyuttKezdet = tied[teHely];
                else unatkozasKezdet = tied[teHely];
                teJatszol = true;
            }
            else
            {
                if (teJatszol && hanoJatszik) perc += -tied[teHely] - egyuttKezdet;
                teJatszol = false;
            }
            teHely += 1;
        }
        else
        {
            if (teJatszol && !hanoJatszik && unatkozasKezdet + T < abs(hanoe[hanoHely])) teJatszol = false;
            if (hanoe[hanoHely] >= 0)
            {
                if (teJatszol) egyuttKezdet = hanoe[hanoHely];
                hanoJatszik = true;
            }
            else
            {
                if (teJatszol && hanoJatszik) perc += -hanoe[hanoHely] - egyuttKezdet;
                if (teJatszol) unatkozasKezdet = -hanoe[hanoHely];
                hanoJatszik = false;
            }
            hanoHely += 1;
        }
    }
    cout << perc << endl;
    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Elfogadva 3ms 1824 KiB
2 Elfogadva 2ms 2020 KiB
subtask2 10/10
3 Elfogadva 2ms 2248 KiB
4 Elfogadva 2ms 2444 KiB
5 Elfogadva 2ms 2676 KiB
6 Elfogadva 2ms 2780 KiB
7 Elfogadva 2ms 2824 KiB
8 Elfogadva 2ms 2808 KiB
9 Elfogadva 2ms 2904 KiB
10 Elfogadva 2ms 2908 KiB
11 Elfogadva 2ms 2908 KiB
subtask3 20/20
12 Elfogadva 2ms 3136 KiB
13 Elfogadva 2ms 3336 KiB
14 Elfogadva 2ms 3476 KiB
15 Elfogadva 2ms 3472 KiB
16 Elfogadva 2ms 3468 KiB
17 Elfogadva 2ms 3752 KiB
18 Elfogadva 3ms 3960 KiB
19 Elfogadva 3ms 4152 KiB
20 Elfogadva 2ms 4188 KiB
21 Elfogadva 2ms 4092 KiB
22 Elfogadva 2ms 4196 KiB
subtask4 30/30
23 Elfogadva 7ms 5264 KiB
24 Elfogadva 18ms 7068 KiB
25 Elfogadva 45ms 13024 KiB
26 Elfogadva 48ms 13404 KiB
27 Elfogadva 48ms 13660 KiB
28 Elfogadva 19ms 8612 KiB
29 Elfogadva 4ms 5192 KiB
30 Elfogadva 4ms 5440 KiB
31 Elfogadva 4ms 5020 KiB
subtask5 40/40
32 Elfogadva 7ms 6020 KiB
33 Elfogadva 21ms 7844 KiB
34 Elfogadva 39ms 11016 KiB
35 Elfogadva 54ms 13896 KiB
36 Elfogadva 61ms 14092 KiB
37 Elfogadva 59ms 14096 KiB
38 Elfogadva 32ms 9956 KiB
39 Elfogadva 41ms 13236 KiB
40 Elfogadva 10ms 7056 KiB
41 Elfogadva 16ms 7424 KiB