228842026-01-16 07:11:17SpoonMekk Mester munkái (50 pont)cpp17Wrong answer 3/50688ms2624 KiB
#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>
#include <stack>

using namespace std;

struct munapok {
    int k;
    int v;
    int sorszam;
};

int n,H, M1=0,M2=0;
vector<munapok> munkak;
vector<int> mester;
vector<int> gyerek;

int comp(munapok a, munapok b) {
    return a.v<b.v;
}

void beolvas() {
    cin>>n>>H;
    munkak.resize(n+1);
    mester.resize(H+1,0);
	gyerek.resize(H+1,0);
    for (int i = 1;i <=n;i++) {
        cin >> munkak[i].k >> munkak[i].v;
        munkak[i].sorszam = i;
    }
    sort(munkak.begin(), munkak.end(), comp);
}

void mekkmester() {
    int db=0;
    for (int i = 1;i <= n;i++) {
        if(db == 0) {
            if(gyerek[munkak[i].v]==0 && gyerek[munkak[i].k]==0) {
                int nemjo=0;
                for (int j = munkak[i].k; j <= munkak[i].v;j++) {
                    if(gyerek[j]!=0) nemjo++;
                }
                if(nemjo==0){
                    for (int j = munkak[i].k; j <= munkak[i].v ;j++) {
                        gyerek[j] = munkak[i].sorszam;
                    }
                    M2++;
                }
                else db=1;
            }
            else db=1;
        }
        if (db == 1) {
            if (mester[munkak[i].v] == 0 && mester[munkak[i].k] == 0) {
                int nemjo2 = 0;
                    for (int j = munkak[i].k; j <= munkak[i].v; j++) {
                        if (mester[j] != 0) nemjo2++;
                    }
                if (nemjo2 == 0) {
                    for (int j = munkak[i].k; j <= munkak[i].v;j++) {
                        mester[j] = munkak[i].sorszam;
                    }
                    M1++;
                }
                else db=2;
            }
            else db=2;
        }
        if (db == 2) {
            if (gyerek[munkak[i].v] == 0 && gyerek[munkak[i].k] == 0) {
                int nemjo3 = 0;
                for (int j = munkak[i].k; j <= munkak[i].v;j++) {
                    if (gyerek[j] != 0) nemjo3++;
                }
                if (nemjo3 == 0) {
                    for (int j = munkak[i].k; j <= munkak[i].v;j++) {
                        gyerek[j] = munkak[i].sorszam;
                    }
                    M2++;
                    db = 0;
                }
                else db = 1;
            }
            else db = 1;
        }
    }
}

void kiir() {
    cout<<M1<<" "<<M2<<endl;
    int uccso1=0,uccso2=0;
    for (int i = 1;i <= n;i++) {
        if (mester[i] != 0 && mester[i] != uccso2) {
            cout << mester[i] << " ";
            uccso2 = mester[i];
        }
    }
    cout<<endl;
    for (int i = 1;i <= n;i++) {
        if (gyerek[i] != 0 && gyerek[i]!=uccso1) {  
            cout<<gyerek[i]<<" ";
            uccso1=gyerek[i];
        }
    }
}


int main()
{
    beolvas();
    mekkmester();
    kiir();
    

    return 0;
}
SubtaskSumTestVerdictTimeMemory
base3/50
1Accepted0/01ms568 KiB
2Wrong answer0/027ms564 KiB
3Wrong answer0/14ms1076 KiB
4Wrong answer0/13ms1076 KiB
5Wrong answer0/24ms1076 KiB
6Wrong answer0/24ms1076 KiB
7Wrong answer0/23ms1080 KiB
8Wrong answer0/22ms1076 KiB
9Accepted3/31ms316 KiB
10Wrong answer0/121ms1212 KiB
11Wrong answer0/123ms1204 KiB
12Wrong answer0/219ms1076 KiB
13Wrong answer0/214ms1076 KiB
14Wrong answer0/29ms1412 KiB
15Wrong answer0/29ms1076 KiB
16Wrong answer0/32ms500 KiB
17Time limit exceeded0/2683ms2356 KiB
18Time limit exceeded0/2680ms2356 KiB
19Time limit exceeded0/4677ms2356 KiB
20Time limit exceeded0/4685ms2356 KiB
21Time limit exceeded0/4688ms2356 KiB
22Time limit exceeded0/4681ms2356 KiB
23Wrong answer0/4527ms2624 KiB