158092025-03-03 15:23:31zsombÁdám és Éva együttcpp17Hibás válasz 31/5068ms1328 KiB
#include <bits/stdc++.h>
using namespace std;

int main()
{
    int k;
    cin >> k;

    int a;
    int b;
    cin >> a;
    // int Today= 0;

    vector<int> aFirst(a);
    vector<int> aSecond(a);

    for (int i = 0; i < a; i++)
    {
        cin >> aFirst[i] >> aSecond[i];
        // if(aFirst[i] < Today)Today = aFirst[i];
    }
    cin >> b;
    vector<int> bFirst(b);
    vector<int> bSecond(b);

    for (int i = 0; i < b; i++)
    {
        cin >> bFirst[i] >> bSecond[i];
        // if(bFirst[i] < Today)Today = bFirst[i];
    }

    int IdxA = 0;
    int IdxB = 0;
    int aOnline = 0;
    int bOnline = 0;
    vector<int> first(0);
    vector<int> last(0);

    while (IdxA < a && IdxB < b)
    {
        if (aOnline == 0 && bOnline == 0)
        {

            if (aFirst[IdxA] < bFirst[IdxB])
                aOnline = 1;

            else
                bOnline = 1;
        }

        else if (aOnline != 0 && bOnline == 0)
        {
            if (aSecond[IdxA] <= bFirst[IdxB])
            {
                aOnline = 0;
                IdxA++;
            }
            else
            {
                bOnline = 1;
            }
        }

        else if (aOnline == 0 && bOnline != 0)
        {
            if (aFirst[IdxA] >= bSecond[IdxB])
            {
                bOnline = 0;
                IdxB++;
            }
            else
            {
                aOnline = 1;
            }
        }
        else
        {
            if (aSecond[IdxA] <= bSecond[IdxB])
            {
                if (aFirst[IdxA] <= bFirst[IdxB])
                {
                    first.push_back(bFirst[IdxB]);
                }
                else
                {
                    first.push_back(aFirst[IdxA]);
                }
                last.push_back(aSecond[IdxA]);
                aOnline = 0;
                IdxA++;
            }
            else
            {
                if (aFirst[IdxA] <= bFirst[IdxB])
                {
                    first.push_back(aFirst[IdxB]);
                }
                else
                {
                    first.push_back(aFirst[IdxA]);
                }
                last.push_back(bSecond[IdxB]);
                bOnline = 0;
                IdxB++;
            }
        }
    }
    cout << first.size();
    cout << endl;
    for (int i = 0; i < first.size(); i++)
    {
        cout << first[i] << " " << last[i] << endl;
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base31/50
1Elfogadva0/01ms508 KiB
2Hibás válasz0/01ms508 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva2/21ms316 KiB
6Elfogadva2/21ms316 KiB
7Részben helyes1/21ms508 KiB
8Részben helyes1/21ms316 KiB
9Elfogadva2/21ms508 KiB
10Részben helyes1/21ms316 KiB
11Részben helyes1/21ms316 KiB
12Részben helyes1/21ms372 KiB
13Részben helyes1/21ms316 KiB
14Részben helyes1/21ms316 KiB
15Elfogadva2/21ms316 KiB
16Részben helyes1/264ms1328 KiB
17Részben helyes2/368ms1196 KiB
18Részben helyes1/361ms1060 KiB
19Részben helyes2/464ms1188 KiB
20Részben helyes2/468ms1140 KiB
21Részben helyes2/468ms1324 KiB
22Részben helyes2/468ms1188 KiB