# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
675193 | 2022-12-27T02:45:07 Z | SanguineChameleon | Trampoline (info1cup20_trampoline) | C++17 | 732 ms | 46456 KB |
// BEGIN BOILERPLATE CODE #include <bits/stdc++.h> using namespace std; #ifdef KAMIRULEZ const bool kami_loc = true; const long long kami_seed = 69420; #else const bool kami_loc = false; const long long kami_seed = chrono::steady_clock::now().time_since_epoch().count(); #endif const string kami_fi = "kamirulez.inp"; const string kami_fo = "kamirulez.out"; mt19937_64 kami_gen(kami_seed); long long rand_range(long long rmin, long long rmax) { uniform_int_distribution<long long> rdist(rmin, rmax); return rdist(kami_gen); } long double rand_real(long double rmin, long double rmax) { uniform_real_distribution<long double> rdist(rmin, rmax); return rdist(kami_gen); } void file_io(string fi, string fo) { if (fi != "" && (!kami_loc || fi == kami_fi)) { freopen(fi.c_str(), "r", stdin); } if (fo != "" && (!kami_loc || fo == kami_fo)) { freopen(fo.c_str(), "w", stdout); } } void set_up() { if (kami_loc) { file_io(kami_fi, kami_fo); } ios_base::sync_with_stdio(0); cin.tie(0); } void just_do_it(); void just_exec_it() { if (kami_loc) { auto pstart = chrono::steady_clock::now(); just_do_it(); auto pend = chrono::steady_clock::now(); long long ptime = chrono::duration_cast<chrono::milliseconds>(pend - pstart).count(); string bar(50, '='); cout << '\n' << bar << '\n'; cout << "Time: " << ptime << " ms" << '\n'; } else { just_do_it(); } } int main() { set_up(); just_exec_it(); return 0; } // END BOILERPLATE CODE // BEGIN MAIN CODE const int ms = 2e5 + 20; const int st = 20; map<int, set<pair<int, int>>> f; int px[ms]; int py[ms]; int nxt[ms][st]; int get(int px, int py) { auto it1 = f.find(px); if (it1 == f.end()) { return 0; } auto it2 = it1->second.lower_bound(make_pair(py, -1)); if (it2 == it1->second.end()) { return 0; } return it2->second; } void just_do_it() { int n; cin >> n >> n >> n; for (int i = 1; i <= n; i++) { cin >> px[i] >> py[i]; f[px[i]].insert({py[i], i}); } for (int u = 1; u <= n; u++) { nxt[u][0] = get(px[u] + 1, py[u]); } for (int k = 1; k < st; k++) { for (int u = 1; u <= n; u++) { nxt[u][k] = nxt[nxt[u][k - 1]][k - 1]; } } int q; cin >> q; for (int i = 0; i < q; i++) { int sx, sy, tx, ty; cin >> sx >> sy >> tx >> ty; if (sx == tx) { if (sy <= ty) { cout << "Yes" << '\n'; } else { cout << "No" << '\n'; } continue; } else if (sx > tx) { cout << "No" << '\n'; continue; } int u = get(sx, sy); for (int k = 0; k < st; k++) { if (((tx - sx - 1) >> k) & 1) { u = nxt[u][k]; } } if (u == 0) { cout << "No" << '\n'; continue; } if (py[u] <= ty) { cout << "Yes" << '\n'; } else { cout << "No" << '\n'; } } } // END MAIN CODE
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 1492 KB | 200 token(s): yes count is 21, no count is 179 |
2 | Correct | 7 ms | 1688 KB | 200 token(s): yes count is 70, no count is 130 |
3 | Correct | 4 ms | 1236 KB | 197 token(s): yes count is 25, no count is 172 |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 231 ms | 27096 KB | 4000 token(s): yes count is 99, no count is 3901 |
2 | Correct | 231 ms | 27136 KB | 4000 token(s): yes count is 91, no count is 3909 |
3 | Correct | 264 ms | 26860 KB | 4000 token(s): yes count is 4000, no count is 0 |
4 | Correct | 253 ms | 27152 KB | 4000 token(s): yes count is 1991, no count is 2009 |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 391 ms | 27728 KB | 200000 token(s): yes count is 110486, no count is 89514 |
2 | Correct | 390 ms | 27596 KB | 200000 token(s): yes count is 114664, no count is 85336 |
3 | Correct | 438 ms | 27600 KB | 200000 token(s): yes count is 86232, no count is 113768 |
4 | Correct | 422 ms | 27940 KB | 200000 token(s): yes count is 94603, no count is 105397 |
5 | Correct | 411 ms | 27788 KB | 200000 token(s): yes count is 94148, no count is 105852 |
6 | Correct | 494 ms | 33836 KB | 200000 token(s): yes count is 97163, no count is 102837 |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 960 KB | 5000 token(s): yes count is 3238, no count is 1762 |
2 | Correct | 6 ms | 980 KB | 5000 token(s): yes count is 3837, no count is 1163 |
3 | Correct | 6 ms | 1492 KB | 5000 token(s): yes count is 4104, no count is 896 |
4 | Correct | 6 ms | 980 KB | 5000 token(s): yes count is 3934, no count is 1066 |
5 | Correct | 7 ms | 1108 KB | 5000 token(s): yes count is 3384, no count is 1616 |
6 | Correct | 6 ms | 980 KB | 5000 token(s): yes count is 3390, no count is 1610 |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 590 ms | 35224 KB | 200000 token(s): yes count is 171404, no count is 28596 |
2 | Correct | 542 ms | 29484 KB | 200000 token(s): yes count is 161254, no count is 38746 |
3 | Correct | 412 ms | 27556 KB | 200000 token(s): yes count is 117455, no count is 82545 |
4 | Correct | 732 ms | 46456 KB | 200000 token(s): yes count is 182118, no count is 17882 |
5 | Correct | 522 ms | 34332 KB | 200000 token(s): yes count is 167565, no count is 32435 |
6 | Correct | 441 ms | 27596 KB | 200000 token(s): yes count is 156797, no count is 43203 |
7 | Correct | 433 ms | 27608 KB | 200000 token(s): yes count is 156797, no count is 43203 |
8 | Correct | 438 ms | 27692 KB | 200000 token(s): yes count is 122100, no count is 77900 |
9 | Correct | 588 ms | 33912 KB | 200000 token(s): yes count is 139670, no count is 60330 |
10 | Correct | 571 ms | 33924 KB | 200000 token(s): yes count is 165806, no count is 34194 |
11 | Correct | 665 ms | 40144 KB | 200000 token(s): yes count is 175646, no count is 24354 |
12 | Correct | 388 ms | 27660 KB | 200000 token(s): yes count is 134695, no count is 65305 |
13 | Correct | 373 ms | 27608 KB | 200000 token(s): yes count is 126733, no count is 73267 |
14 | Correct | 469 ms | 27684 KB | 200000 token(s): yes count is 155290, no count is 44710 |
15 | Correct | 437 ms | 27624 KB | 200000 token(s): yes count is 129674, no count is 70326 |