Submission #590758

#TimeUsernameProblemLanguageResultExecution timeMemory
590758VanillaRoller Coaster Railroad (IOI16_railroad)C++17
0 / 100
426 ms25448 KiB
#include <bits/stdc++.h>
#include "railroad.h"
using namespace std;

long long plan_roller_coaster(vector<int> s, vector<int> t) {
    int n = s.size();
    multiset <pair <int, int> > ms;
    map <pair <int, int>, int> mp;
    pair <int, int> bad = {-1, -1};
    for (int i = 0; i < n; i++) {
        ms.insert({s[i], t[i]});
        mp[{s[i], t[i]}]++;
    }
    for (int i = 0; i < n; i++){
        auto it = ms.lower_bound({t[i], -1});
        if (it == ms.end()){
            bad = {s[i], t[i]};
        }
        else {
            if (*it == make_pair(s[i], t[i]) && mp[{s[i], t[i]}] == 1) it++;
            if (it == ms.end()) {
                bad = {s[i], t[i]};
            }
        }
    }
    int last = 1;
    for (int i = 0; i < n; i++){
        auto it = ms.lower_bound({last, 0});
        // cout << i << " " << last << " " << it->first << " " << it->second << "\n";
        if (it != ms.end() && *it == bad && i != n-1) it++;
        if (it == ms.end()) return 1;
        last = it->second;
        ms.erase(it);
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...