141472025-01-10 06:15:42madvirA lehető legkevesebb átszállás (50 pont)cpp17Hibás válasz 4/508ms564 KiB
#include <iostream>
#include <set>

using namespace std;

struct vonat {
    int x, y, ind;
};

int main()
{
    int n, m, x, y;
    cin >> n >> m;
    vonat von[n+1];
    set<int> used;
    for(int i=1; i<=n; i++) {
        cin >> x >> y;
        von[i].x=x;
        von[i].y=y;
        von[i].ind=i;
    }
    int k=2, p=von[1].x, q=von[1].y;
    while(von[k].x==p) {
        q=von[k].y;
        k++;
    }
    used.insert(k-1);
    while(k<=n) {
        if(von[k].x<=q && von[k].y>q) {
            if(p>=von[k].x) {
              used.erase(k-1);
            }
            p=von[k].x;
            q=von[k].y;
            used.insert(von[k].ind);
        }
        k++;
    }
    if(von[1].x!=1 || q!=m) {
      cout << -1;
    }
    else {
      cout << used.size()-1 << endl;
      for(set<int>::iterator ptr=used.begin(); ptr!=used.end(); ptr++) {
         cout << *ptr << " ";
      }
    }
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base4/50
1Elfogadva0/01ms316 KiB
2Hibás válasz0/08ms564 KiB
3Elfogadva1/11ms316 KiB
4Elfogadva1/11ms316 KiB
5Hibás válasz0/21ms316 KiB
6Elfogadva2/21ms316 KiB
7Hibás válasz0/21ms316 KiB
8Hibás válasz0/22ms316 KiB
9Hibás válasz0/22ms316 KiB
10Hibás válasz0/23ms336 KiB
11Hibás válasz0/24ms316 KiB
12Hibás válasz0/24ms316 KiB
13Hibás válasz0/22ms316 KiB
14Hibás válasz0/22ms316 KiB
15Hibás válasz0/23ms316 KiB
16Hibás válasz0/24ms316 KiB
17Hibás válasz0/26ms316 KiB
18Hibás válasz0/27ms564 KiB
19Hibás válasz0/27ms564 KiB
20Hibás válasz0/27ms508 KiB
21Hibás válasz0/28ms456 KiB
22Hibás válasz0/28ms564 KiB
23Hibás válasz0/27ms316 KiB
24Hibás válasz0/27ms444 KiB
25Hibás válasz0/27ms508 KiB
26Hibás válasz0/27ms476 KiB
27Hibás válasz0/27ms320 KiB
28Hibás válasz0/27ms496 KiB