82332024-01-13 18:09:06TuruTamasMekk Mester munkái (50 pont)cpp17Hibás válasz 7/5093ms14128 KiB
#include <bits/stdc++.h>
using namespace std;

#ifdef DEBUG
ifstream in_file("minta/be2.txt");
#define input in_file
#define INTHENAMEOFGOD
#else
#define input cin
#define INTHENAMEOFGOD \
    ios::sync_with_stdio(0); \
    cin.tie(0); \
    cout.tie(0);
#endif
typedef long long ll;
typedef vector<ll> vi;
typedef vector<vi> vvi;
typedef vector<bool> vb;
typedef pair<ll, ll> pii;
typedef tuple<ll, ll, ll> tll;

ll N, H, a, b;
vector<tll> munkak;
ll mv, fv;
vector<pii> eredeti;
vector<ll> mester, fia;

int main()
{
    input >> N >> H;
    for (ll n = 1; n <= N; n++) {
        input >> a >> b;
        munkak.emplace_back(a, b, n);
        eredeti.emplace_back(a, b);
    }
    sort(munkak.begin(), munkak.end());
    for (ll n = 0; n < N; n++) {
        auto &[k, v, i] = munkak[n];
        if (mv < k) {
            mester.push_back(i);
            mv = v;
        }
        else if (fv < k) {
            fia.push_back(i);
            fv = v;
        }
        else if (v < mv) {
            ll regi = mester.back();
            mester.pop_back();
            mv = v;
            mester.push_back(i);
            pii p = eredeti[regi-1];
            if (p.first > fv) {
                fia.push_back(regi);
                fv = p.second;
            }
            else if (p.second < fv) {
                fia.pop_back();
                fv = p.second;
                fia.push_back(regi);
            }
        }
        else if (v < fv) {
            ll regi = fia.back();
            fia.pop_back();
            fv = v;
            fia.push_back(i);
            pii p = eredeti[regi-1];
            if (p.first > mv) {
                mester.push_back(regi);
                mv = p.second;
            }
            else if (p.second < mv) {
                mester.pop_back();
                mv = p.second;
                mester.push_back(regi);
            }
        }
    }
    cout << mester.size() << " " << fia.size() << "\n";
    for (ll val : mester) {
        cout << val << " ";
    }
    cout << "\n";
    for (ll val : fia) {
        cout << val << " ";
    }
    cout << endl;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base7/50
1Elfogadva0/03ms1880 KiB
2Hibás válasz0/09ms3308 KiB
3Hibás válasz0/13ms2428 KiB
4Hibás válasz0/13ms2664 KiB
5Hibás válasz0/23ms2728 KiB
6Hibás válasz0/23ms2852 KiB
7Elfogadva2/23ms2844 KiB
8Elfogadva2/23ms3020 KiB
9Elfogadva3/33ms3264 KiB
10Hibás válasz0/13ms3684 KiB
11Hibás válasz0/13ms3932 KiB
12Hibás válasz0/23ms3888 KiB
13Hibás válasz0/23ms3964 KiB
14Hibás válasz0/24ms4212 KiB
15Hibás válasz0/23ms4372 KiB
16Hibás válasz0/33ms4292 KiB
17Hibás válasz0/285ms12380 KiB
18Hibás válasz0/282ms12368 KiB
19Hibás válasz0/482ms12384 KiB
20Hibás válasz0/483ms12376 KiB
21Hibás válasz0/486ms12384 KiB
22Hibás válasz0/486ms12444 KiB
23Hibás válasz0/493ms14128 KiB