제출 #413529

#제출 시각아이디문제언어결과실행 시간메모리
413529Mamnoon_SiamRoller Coaster Railroad (IOI16_railroad)C++17
0 / 100
134 ms9648 KiB
#ifndef LOCAL #include "railroad.h" #endif #include <bits/stdc++.h> using namespace std; using ii = pair<int, int>; using ll = long long; using vi = vector<int>; #define all(v) begin(v), end(v) #define sz(v) (int)(v.size()) #define fi first #define se second ll plan_roller_coaster(vi s, vi t) { int n = sz(s); vi ps(n); iota(all(ps), 0); sort(all(ps), [&s](int i, int j){ return s[i] < s[j]; }); vi swhere(n); for(int i = 0; i < n; ++i) { swhere[ps[i]] = i; } vi pt(n); iota(all(pt), 0); sort(all(pt), [&t,&swhere](int i, int j){ return t[i] == t[j] ? swhere[i] > swhere[j] : t[i] < t[j]; }); sort(all(s)); sort(all(t)); int ptr = sz(s); for(int i = sz(t)-1; i >= 0; --i) { while(ptr and s[ptr-1] >= t[i]) { --ptr; } int S = n - i; int NS = n - ptr - swhere[pt[i]]; if(S - NS > 1) return 1; } return 0; } #ifdef LOCAL int main() { freopen("01", "r", stdin); int n; assert(1 == scanf("%d", &n)); std::vector<int> s(n), t(n); for (int i = 0; i < n; ++i) assert(2 == scanf("%d%d", &s[i], &t[i])); long long ans = plan_roller_coaster(s, t); printf("%lld\n", ans); return 0; } #endif
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...