29932023-02-07 12:53:24bzsofiaVideójátékcpp11Hibás válasz 10/100186ms10584 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ÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1944 KiB
2Elfogadva3ms2124 KiB
subtask210/10
3Elfogadva3ms2116 KiB
4Elfogadva3ms2216 KiB
5Elfogadva3ms2428 KiB
6Elfogadva3ms2664 KiB
7Elfogadva3ms2736 KiB
8Elfogadva3ms2792 KiB
9Elfogadva3ms2872 KiB
10Elfogadva3ms2872 KiB
11Elfogadva3ms3036 KiB
subtask30/20
12Elfogadva3ms3236 KiB
13Elfogadva3ms3256 KiB
14Elfogadva3ms3364 KiB
15Elfogadva3ms3532 KiB
16Elfogadva3ms3620 KiB
17Elfogadva4ms3732 KiB
18Elfogadva4ms3868 KiB
19Elfogadva4ms3852 KiB
20Hibás válasz3ms3932 KiB
21Hibás válasz4ms4024 KiB
22Hibás válasz3ms3828 KiB
subtask40/30
23Elfogadva16ms4212 KiB
24Elfogadva50ms5972 KiB
25Elfogadva123ms9596 KiB
26Elfogadva137ms10456 KiB
27Elfogadva137ms10392 KiB
28Elfogadva54ms6604 KiB
29Hibás válasz10ms4680 KiB
30Hibás válasz10ms4736 KiB
31Hibás válasz7ms4284 KiB
subtask50/40
32Hibás válasz17ms4696 KiB
33Elfogadva61ms6736 KiB
34Elfogadva115ms8504 KiB
35Elfogadva164ms9940 KiB
36Elfogadva186ms10584 KiB
37Elfogadva186ms10560 KiB
38Hibás válasz94ms8400 KiB
39Hibás válasz114ms9000 KiB
40Hibás válasz29ms5388 KiB
41Hibás válasz45ms6312 KiB