2992 2023. 02. 07 12:52:55 bzsofia Videójáték cpp11 Hibás válasz 10/100 186ms 11080 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<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 1812 KiB
2 Elfogadva 3ms 2060 KiB
subtask2 10/10
3 Elfogadva 3ms 2304 KiB
4 Elfogadva 3ms 2512 KiB
5 Elfogadva 3ms 2728 KiB
6 Elfogadva 3ms 2976 KiB
7 Elfogadva 3ms 3020 KiB
8 Elfogadva 3ms 3264 KiB
9 Elfogadva 3ms 3392 KiB
10 Elfogadva 3ms 3608 KiB
11 Elfogadva 3ms 3696 KiB
subtask3 0/20
12 Elfogadva 3ms 3784 KiB
13 Elfogadva 3ms 3784 KiB
14 Elfogadva 3ms 3792 KiB
15 Elfogadva 3ms 3908 KiB
16 Elfogadva 3ms 3908 KiB
17 Elfogadva 4ms 4032 KiB
18 Elfogadva 4ms 4032 KiB
19 Elfogadva 4ms 4044 KiB
20 Hibás válasz 4ms 4312 KiB
21 Hibás válasz 3ms 4456 KiB
22 Hibás válasz 3ms 4440 KiB
subtask4 0/30
23 Elfogadva 14ms 4892 KiB
24 Elfogadva 50ms 6252 KiB
25 Elfogadva 123ms 10068 KiB
26 Elfogadva 137ms 10676 KiB
27 Elfogadva 136ms 10668 KiB
28 Elfogadva 54ms 7152 KiB
29 Hibás válasz 12ms 5192 KiB
30 Hibás válasz 10ms 5184 KiB
31 Hibás válasz 7ms 5000 KiB
subtask5 0/40
32 Hibás válasz 17ms 5364 KiB
33 Elfogadva 61ms 7244 KiB
34 Elfogadva 115ms 8972 KiB
35 Elfogadva 164ms 10408 KiB
36 Elfogadva 186ms 11080 KiB
37 Elfogadva 185ms 11080 KiB
38 Hibás válasz 94ms 8768 KiB
39 Hibás válasz 114ms 9416 KiB
40 Hibás válasz 29ms 5924 KiB
41 Hibás válasz 45ms 6688 KiB