28602023-01-30 15:42:22kdbVideójátékcpp11Accepted 100/10061ms14096 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;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted3ms1824 KiB
2Accepted2ms2020 KiB
subtask210/10
3Accepted2ms2248 KiB
4Accepted2ms2444 KiB
5Accepted2ms2676 KiB
6Accepted2ms2780 KiB
7Accepted2ms2824 KiB
8Accepted2ms2808 KiB
9Accepted2ms2904 KiB
10Accepted2ms2908 KiB
11Accepted2ms2908 KiB
subtask320/20
12Accepted2ms3136 KiB
13Accepted2ms3336 KiB
14Accepted2ms3476 KiB
15Accepted2ms3472 KiB
16Accepted2ms3468 KiB
17Accepted2ms3752 KiB
18Accepted3ms3960 KiB
19Accepted3ms4152 KiB
20Accepted2ms4188 KiB
21Accepted2ms4092 KiB
22Accepted2ms4196 KiB
subtask430/30
23Accepted7ms5264 KiB
24Accepted18ms7068 KiB
25Accepted45ms13024 KiB
26Accepted48ms13404 KiB
27Accepted48ms13660 KiB
28Accepted19ms8612 KiB
29Accepted4ms5192 KiB
30Accepted4ms5440 KiB
31Accepted4ms5020 KiB
subtask540/40
32Accepted7ms6020 KiB
33Accepted21ms7844 KiB
34Accepted39ms11016 KiB
35Accepted54ms13896 KiB
36Accepted61ms14092 KiB
37Accepted59ms14096 KiB
38Accepted32ms9956 KiB
39Accepted41ms13236 KiB
40Accepted10ms7056 KiB
41Accepted16ms7424 KiB