2994 2023. 02. 07 12:54:32 bzsofia Videójáték cpp11 Hibás válasz 10/100 182ms 10864 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 2268 KiB
4 Elfogadva 3ms 2456 KiB
5 Elfogadva 3ms 2568 KiB
6 Elfogadva 3ms 2924 KiB
7 Elfogadva 3ms 3020 KiB
8 Elfogadva 3ms 3140 KiB
9 Elfogadva 3ms 3300 KiB
10 Elfogadva 3ms 3228 KiB
11 Elfogadva 3ms 3424 KiB
subtask3 0/20
12 Elfogadva 3ms 3544 KiB
13 Elfogadva 2ms 3612 KiB
14 Elfogadva 3ms 3728 KiB
15 Elfogadva 3ms 3888 KiB
16 Elfogadva 3ms 4100 KiB
17 Elfogadva 4ms 4200 KiB
18 Elfogadva 4ms 4280 KiB
19 Elfogadva 4ms 4296 KiB
20 Hibás válasz 3ms 4080 KiB
21 Hibás válasz 4ms 4116 KiB
22 Elfogadva 3ms 4184 KiB
subtask4 0/30
23 Elfogadva 14ms 4640 KiB
24 Elfogadva 50ms 6120 KiB
25 Elfogadva 123ms 9760 KiB
26 Elfogadva 138ms 10528 KiB
27 Elfogadva 136ms 10720 KiB
28 Elfogadva 54ms 6864 KiB
29 Elfogadva 10ms 4940 KiB
30 Elfogadva 10ms 4884 KiB
31 Hibás válasz 7ms 4628 KiB
subtask5 0/40
32 Elfogadva 17ms 4908 KiB
33 Elfogadva 61ms 6784 KiB
34 Elfogadva 116ms 8484 KiB
35 Elfogadva 159ms 9912 KiB
36 Elfogadva 182ms 10564 KiB
37 Elfogadva 182ms 10864 KiB
38 Elfogadva 93ms 8652 KiB
39 Elfogadva 112ms 9212 KiB
40 Hibás válasz 30ms 5720 KiB
41 Hibás válasz 45ms 6488 KiB