142952025-01-10 12:04:33KissCsongor777Mekk Mester munkái (50 pont)cpp17Hibás válasz 0/50118ms5988 KiB
#include <iostream>
#include <algorithm>
#include <set>
#include <bits/stdc++.h>
using namespace std;

struct megrendeles
{
    int k,v,s,l;
};

int f(megrendeles x, megrendeles y)
{
    if(x.l<y.l)return 1;
    else if(x.l==y.l){if(x.k<y.k)return 1; else return 0;}
    else return 0;
}

megrendeles m[100001];

int main()
{
    int n,h,m1,m2;
    bool t;
    cin>>n>>h;
    int a[h+1]={0}, b[h+1]={0};
    set<int> mes1,mes2;
    for(int i=1; i<=n; i++)
    {
        cin>>m[i].k>>m[i].v;
        m[i].s=i;
        m[i].l=m[i].v-m[i].k;
    }
    sort(m+1,m+n+1,f);
    for(int i=1; i<=n; i++)
       {
           t=true;
           for(int j=m[i].k; j<=m[i].v && t; j++)if(a[j]==1)t=false;
           if(t){mes1.insert(m[i].s); fill(a+m[i].k, a+m[i].v+1, 1); }
           else {t=true;for(int j=m[i].k; j<=m[i].v && t; j++)if(b[j]==1)t=false;
           if(t){mes2.insert(m[i].s); fill(b+m[i].k, b+m[i].v+1, 1);}}
       }
       cout<<mes1.size()<<" "<<mes2.size()<<endl;
       set<int>::iterator it;
       for(it=mes1.begin(); it!=mes1.end(); it++)cout<<*it<<" ";
       cout<<endl;
       for(it=mes2.begin(); it!=mes2.end(); it++)cout<<*it<<" ";
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/50
1Elfogadva0/01ms316 KiB
2Hibás válasz0/08ms564 KiB
3Hibás válasz0/12ms1076 KiB
4Hibás válasz0/12ms1076 KiB
5Hibás válasz0/22ms1076 KiB
6Hibás válasz0/22ms1076 KiB
7Hibás válasz0/22ms1180 KiB
8Hibás válasz0/22ms1076 KiB
9Hibás válasz0/31ms316 KiB
10Hibás válasz0/13ms1076 KiB
11Hibás válasz0/13ms1076 KiB
12Hibás válasz0/24ms1076 KiB
13Hibás válasz0/23ms1076 KiB
14Hibás válasz0/23ms1076 KiB
15Hibás válasz0/23ms1192 KiB
16Hibás válasz0/32ms316 KiB
17Hibás válasz0/2101ms2596 KiB
18Hibás válasz0/2101ms2704 KiB
19Hibás válasz0/498ms2700 KiB
20Hibás válasz0/496ms2704 KiB
21Hibás válasz0/494ms2868 KiB
22Hibás válasz0/497ms3388 KiB
23Hibás válasz0/4118ms5988 KiB