Submission #1218681

#TimeUsernameProblemLanguageResultExecution timeMemory
1218681JooDdaeRoller Coaster Railroad (IOI16_railroad)C++20
30 / 100
216 ms37092 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; int chk[400400]; vector<int> v[400400]; void dfs(int u) { chk[u] = 1; for(auto x : v[u]) if(!chk[x]) dfs(x); } ll plan_roller_coaster(vector<int> s, vector<int> t) { priority_queue<array<int, 2>, vector<array<int, 2>>, greater<>> pq; s.push_back(1e9), t.push_back(1); int n = s.size(); vector<int> V; for(int i=0;i<n;i++) V.push_back(s[i]), V.push_back(t[i]); sort(V.begin(), V.end()); V.erase(unique(V.begin(), V.end()), V.end()); for(int i=0;i<n;i++) s[i] = lower_bound(V.begin(), V.end(), s[i]) - V.begin() + 1; for(int i=0;i<n;i++) t[i] = lower_bound(V.begin(), V.end(), t[i]) - V.begin() + 1; int m = V.size(); vector<int> S(m+1, 0); for(int i=0;i<n;i++) S[s[i]]++, S[t[i]]--, v[s[i]].push_back(t[i]); for(int i=1;i<m;i++) { S[i] += S[i-1]; if(S[i] > 0) return 1; if(S[i] < 0) v[i].push_back(i+1); } dfs(1); return 1 - *min_element(chk+1, chk+1+m); }

Compilation message (stderr)

railroad.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
railroad_c.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...