제출 #114615

#제출 시각아이디문제언어결과실행 시간메모리
114615davitmargRoller Coaster Railroad (IOI16_railroad)C++17
0 / 100
122 ms6820 KiB
/*DavitMarg*/ #include <iostream> #include <algorithm> #include <cmath> #include <vector> #include <string> #include <cstring> #include <map> #include <set> #include <queue> #include <iomanip> #include <bitset> #include <stack> #include <cassert> #include <iterator> #include <ctype.h> #include <fstream> #define mod 1000000007ll #define LL long long #define LD long double #define MP make_pair #define PB push_back #define all(v) v.begin (),v.end() using namespace std; int n,cnt,vin[200005],c, vout[200005],used[200005]; vector<pair<int, int>> p; bool can; int Main() { sort(all(p)); int mt = 0, du = 0; for (int i = 0; i < n; i++) { int l, r, m, pos = n; l = 0; r = n - 1; while (l <= r) { m = (l + r) / 2; if (p[m].first >= p[i].second) { r = m - 1; pos = m; } else l = m + 1; } vout[i] += (n - pos) - (pos <= i); vin[pos]++; } for (int i = 1; i < n; i++) vin[i] += vin[i - 1]; for (int i = 0; i < n; i++) { mt += (vin[i]==0); du += (vout[i]==0); } if (mt > 1 || du > 1) can = 1; return 0; } LL plan_roller_coaster(vector<int> S, vector<int> T) { n = S.size(); while (!S.empty()) { p.PB(MP(S.back(), T.back())); S.pop_back(); T.pop_back(); } Main(); return can; } #ifdef death int main() { int N; vector<int> S,T; cin >> N; for (int i = 0; i < N; i++) { S.PB(0); cin >> S.back(); T.PB(0); cin >> T.back(); } cout << plan_roller_coaster(S,T) << endl; 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...