제출 #492483

#제출 시각아이디문제언어결과실행 시간메모리
492483pavementCoin Collecting (JOI19_ho_t4)C++17
0 / 100
1 ms332 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace std; using namespace __gnu_pbds; #ifdef _WIN32 #define getchar_unlocked _getchar_nolock #endif #define int long long #define mp make_pair #define mt make_tuple #define pb push_back #define ppb pop_back #define eb emplace_back #define g0(a) get<0>(a) #define g1(a) get<1>(a) #define g2(a) get<2>(a) #define g3(a) get<3>(a) mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); typedef double db; typedef long long ll; typedef long double ld; typedef pair<int, int> ii; typedef tuple<int, int, int> iii; typedef tuple<int, int, int, int> iiii; typedef tree<ii, null_type, less<ii>, rb_tree_tag, tree_order_statistics_node_update> ordered_set; int N, ans, X[100005], Y[100005]; vector<ii> v1, v2; main() { ios::sync_with_stdio(0); cin.tie(0); cin >> N; for (int i = 1; i <= N * 2; i++) { cin >> X[i] >> Y[i]; if (Y[i] <= 1) v1.eb(X[i], Y[i]); else v2.eb(X[i], Y[i]); } sort(v1.begin(), v1.end(), greater<ii>()); sort(v2.begin(), v2.end(), greater<ii>()); for (int i = 1; i <= N; i++) { if (v1.empty()) { ans += llabs(v2.back().first - i) + llabs(v2.back().second - 1); cerr << v2.back().first << ' ' << v2.back().second << ' ' << llabs(v2.back().first - i) + llabs(v2.back().second - 1) << '\n'; v2.ppb(); ans += llabs(v2.back().first - i) + llabs(v2.back().second - 2); cerr << v2.back().first << ' ' << v2.back().second << ' ' << llabs(v2.back().first - i) + llabs(v2.back().second - 2) << '\n'; v2.ppb(); } else if (v2.empty()) { ans += llabs(v1.back().first - i) + llabs(v1.back().second - 1); cerr << v1.back().first << ' ' << v1.back().second << ' ' << llabs(v1.back().first - i) + llabs(v1.back().second - 1) << '\n'; v1.ppb(); ans += llabs(v1.back().first - i) + llabs(v1.back().second - 2); cerr << v1.back().first << ' ' << v1.back().second << ' ' << llabs(v1.back().first - i) + llabs(v1.back().second - 2) << '\n'; v1.ppb(); } else if ((v1.back().first <= i && v2.back().first <= i) || (v1.back().first >= i && v2.back().first >= i)) { ans += llabs(v1.back().first - i) + llabs(v1.back().second - 1); cerr << v1.back().first << ' ' << v1.back().second << ' ' << llabs(v1.back().first - i) + llabs(v1.back().second - 1) << '\n'; v1.ppb(); ans += llabs(v2.back().first - i) + llabs(v2.back().second - 2); cerr << v2.back().first << ' ' << v2.back().second << ' ' << llabs(v2.back().first - i) + llabs(v2.back().second - 2) << '\n'; v2.ppb(); } else { if (v1.back().first < v2.back().first) { ans += llabs(v1.back().first - i) + llabs(v1.back().second - 1); cerr << v1.back().first << ' ' << v1.back().second << ' ' << llabs(v1.back().first - i) + llabs(v1.back().second - 1) << '\n'; v1.ppb(); if (v1.empty()) { ans += llabs(v2.back().first - i) + llabs(v2.back().second - 2); cerr << v2.back().first << ' ' << v2.back().second << ' ' << llabs(v2.back().first - i) + llabs(v2.back().second - 2) << '\n'; v2.ppb(); } else if (v2.empty()) { ans += llabs(v1.back().first - i) + llabs(v1.back().second - 2); cerr << v1.back().first << ' ' << v1.back().second << ' ' << llabs(v1.back().first - i) + llabs(v1.back().second - 2) << '\n'; v1.ppb(); } else if ((v1.back().first <= i && v2.back().first <= i) || (v1.back().first >= i && v2.back().first >= i)) { ans += llabs(v1.back().first - i) + llabs(v1.back().second - 2); cerr << v1.back().first << ' ' << v1.back().second << ' ' << llabs(v1.back().first - i) + llabs(v1.back().second - 2) << '\n'; v1.ppb(); } else { if (v1.back().first < v2.back().first) { ans += llabs(v1.back().first - i) + llabs(v1.back().second - 2); cerr << v1.back().first << ' ' << v1.back().second << ' ' << llabs(v1.back().first - i) + llabs(v1.back().second - 2) << '\n'; v1.ppb(); } else { ans += llabs(v2.back().first - i) + llabs(v2.back().second - 2); cerr << v2.back().first << ' ' << v2.back().second << ' ' << llabs(v2.back().first - i) + llabs(v2.back().second - 2) << '\n'; v2.ppb(); } } } else { ans += llabs(v2.back().first - i) + llabs(v2.back().second - 2); cerr << v2.back().first << ' ' << v2.back().second << ' ' << llabs(v2.back().first - i) + llabs(v2.back().second - 2) << '\n'; v2.ppb(); if (v1.empty()) { ans += llabs(v2.back().first - i) + llabs(v2.back().second - 1); cerr << v2.back().first << ' ' << v2.back().second << ' ' << llabs(v2.back().first - i) + llabs(v2.back().second - 1) << '\n'; v2.ppb(); } else if (v2.empty()) { ans += llabs(v1.back().first - i) + llabs(v1.back().second - 1); cerr << v1.back().first << ' ' << v1.back().second << ' ' << llabs(v1.back().first - i) + llabs(v1.back().second - 1) << '\n'; v1.ppb(); } else if ((v1.back().first <= i && v2.back().first <= i) || (v1.back().first >= i && v2.back().first >= i)) { ans += llabs(v1.back().first - i) + llabs(v1.back().second - 1); cerr << v1.back().first << ' ' << v1.back().second << ' ' << llabs(v1.back().first - i) + llabs(v1.back().second - 1) << '\n'; v1.ppb(); } else { if (v1.back().first < v2.back().first) { ans += llabs(v1.back().first - i) + llabs(v1.back().second - 1); cerr << v1.back().first << ' ' << v1.back().second << ' ' << llabs(v1.back().first - i) + llabs(v1.back().second - 1) << '\n'; v1.ppb(); } else { ans += llabs(v2.back().first - i) + llabs(v2.back().second - 1); cerr << v2.back().first << ' ' << v2.back().second << ' ' << llabs(v2.back().first - i) + llabs(v2.back().second - 1) << '\n'; v2.ppb(); } } } } } cout << ans << '\n'; }

컴파일 시 표준 에러 (stderr) 메시지

joi2019_ho_t4.cpp:31:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   31 | main() {
      | ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...