2993 2023. 02. 07 12:53:24 bzsofia Videójáték cpp11 Hibás válasz 10/100 186ms 10584 KiB
// Videogames.cpp : This file contains the 'main' function. Program execution begins and ends there.
//

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

struct adat
{
    long long beg, ends;
};

long long i, n, m, t, j, sum;

bool comp (adat a, adat b)
{
    if (a.beg==b.beg) return a.ends<b.ends;
    return a.beg<b.beg;
}

int main()
{
    cin >> t >> n;
    vector <adat> x(n + 1);

    for (i = 1; i <= n; ++i)
    {
        cin >> x[i].beg >> x[i].ends;
    }

    cin >> m;
    vector <adat> y(m + 1);
    for (i = 1; i <= m; ++i)
    {
        cin >> y[i].beg >> y[i].ends;
    }

    i=1;
    j=1;
    while (i<=n && j<=m)
    {
        if (x[i].ends<y[j].beg) ++i;
        else if (y[j].ends<x[i].beg) ++j;
        else if (x[i].ends==y[j].ends && x[i].beg==y[j].ends)
        {
            ++i;
            ++j;
            sum+=x[i].ends-x[i].beg+1;
        }else if (x[i].beg<y[j].beg)
        {
            if (y[j].beg-x[i].beg+1<=t)
            {
                if (y[j].ends>x[i].ends)
                {
                    if (x[i].ends==y[j].beg)
                    {
                        sum+=1;
                        ++i;
                    }
                    else
                    {
                        sum+=x[i].ends-y[j].beg+1;
                        ++i;
                    }
                }else if (y[j].ends==x[i].ends)
                {
                    sum+=y[j].ends-y[j].beg+1;
                    ++i;
                    ++j;
                }else
                {
                    sum+=y[j].ends-y[j].beg+1;
                    x[i].beg=y[j].ends+1;
                    ++j;
                }
            }
            else
            {
                if (y[j].ends<=x[i].ends) ++j;
                ++i;
            }
        }else if (x[i].beg==y[j].beg)
        {
            if (x[i].ends<y[j].ends)
            {
                sum+=x[i].ends-x[i].beg+1;
                ++i;
            }else
            {
                sum+=y[j].ends-y[j].beg+1;
                x[i].beg=y[j].ends+1;
                ++j;
            }
        }
        else
        {
            if (x[i].beg==y[j].ends)
            {
                sum+=1;
                ++x[i].beg;
                ++j;
            }
            else if (x[i].ends<y[j].ends)
            {
                sum+=x[i].ends-x[i].beg+1;
                ++i;
            }else if (x[i].ends == y[j].ends)
            {
                sum+=x[i].ends-x[i].beg+1;
                ++i;
                ++j;
            }else
            {
                sum+=y[j].ends-x[i].beg+1;
                x[i].beg=y[j].ends+1;
                ++j;
            }
        }
    }

    cout << sum;

    return 0;
}

// Run program: Ctrl + F5 or Debug > Start Without Debugging menu
// Debug program: F5 or Debug > Start Debugging menu

// Tips for Getting Started:
//   1. Use the Solution Explorer window to add/manage files
//   2. Use the Team Explorer window to connect to source control
//   3. Use the Output window to see build output and other messages
//   4. Use the Error List window to view errors
//   5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
//   6. In the future, to open this project again, go to File > Open > Project and select the .sln file
Részfeladat Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Elfogadva 3ms 1944 KiB
2 Elfogadva 3ms 2124 KiB
subtask2 10/10
3 Elfogadva 3ms 2116 KiB
4 Elfogadva 3ms 2216 KiB
5 Elfogadva 3ms 2428 KiB
6 Elfogadva 3ms 2664 KiB
7 Elfogadva 3ms 2736 KiB
8 Elfogadva 3ms 2792 KiB
9 Elfogadva 3ms 2872 KiB
10 Elfogadva 3ms 2872 KiB
11 Elfogadva 3ms 3036 KiB
subtask3 0/20
12 Elfogadva 3ms 3236 KiB
13 Elfogadva 3ms 3256 KiB
14 Elfogadva 3ms 3364 KiB
15 Elfogadva 3ms 3532 KiB
16 Elfogadva 3ms 3620 KiB
17 Elfogadva 4ms 3732 KiB
18 Elfogadva 4ms 3868 KiB
19 Elfogadva 4ms 3852 KiB
20 Hibás válasz 3ms 3932 KiB
21 Hibás válasz 4ms 4024 KiB
22 Hibás válasz 3ms 3828 KiB
subtask4 0/30
23 Elfogadva 16ms 4212 KiB
24 Elfogadva 50ms 5972 KiB
25 Elfogadva 123ms 9596 KiB
26 Elfogadva 137ms 10456 KiB
27 Elfogadva 137ms 10392 KiB
28 Elfogadva 54ms 6604 KiB
29 Hibás válasz 10ms 4680 KiB
30 Hibás válasz 10ms 4736 KiB
31 Hibás válasz 7ms 4284 KiB
subtask5 0/40
32 Hibás válasz 17ms 4696 KiB
33 Elfogadva 61ms 6736 KiB
34 Elfogadva 115ms 8504 KiB
35 Elfogadva 164ms 9940 KiB
36 Elfogadva 186ms 10584 KiB
37 Elfogadva 186ms 10560 KiB
38 Hibás válasz 94ms 8400 KiB
39 Hibás válasz 114ms 9000 KiB
40 Hibás válasz 29ms 5388 KiB
41 Hibás válasz 45ms 6312 KiB