28602023-01-30 15:42:22kdbVideójátékcpp11Elfogadva 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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1824 KiB
2Elfogadva2ms2020 KiB
subtask210/10
3Elfogadva2ms2248 KiB
4Elfogadva2ms2444 KiB
5Elfogadva2ms2676 KiB
6Elfogadva2ms2780 KiB
7Elfogadva2ms2824 KiB
8Elfogadva2ms2808 KiB
9Elfogadva2ms2904 KiB
10Elfogadva2ms2908 KiB
11Elfogadva2ms2908 KiB
subtask320/20
12Elfogadva2ms3136 KiB
13Elfogadva2ms3336 KiB
14Elfogadva2ms3476 KiB
15Elfogadva2ms3472 KiB
16Elfogadva2ms3468 KiB
17Elfogadva2ms3752 KiB
18Elfogadva3ms3960 KiB
19Elfogadva3ms4152 KiB
20Elfogadva2ms4188 KiB
21Elfogadva2ms4092 KiB
22Elfogadva2ms4196 KiB
subtask430/30
23Elfogadva7ms5264 KiB
24Elfogadva18ms7068 KiB
25Elfogadva45ms13024 KiB
26Elfogadva48ms13404 KiB
27Elfogadva48ms13660 KiB
28Elfogadva19ms8612 KiB
29Elfogadva4ms5192 KiB
30Elfogadva4ms5440 KiB
31Elfogadva4ms5020 KiB
subtask540/40
32Elfogadva7ms6020 KiB
33Elfogadva21ms7844 KiB
34Elfogadva39ms11016 KiB
35Elfogadva54ms13896 KiB
36Elfogadva61ms14092 KiB
37Elfogadva59ms14096 KiB
38Elfogadva32ms9956 KiB
39Elfogadva41ms13236 KiB
40Elfogadva10ms7056 KiB
41Elfogadva16ms7424 KiB