Submission #1100277

#TimeUsernameProblemLanguageResultExecution timeMemory
1100277vjudge1Coin Collecting (JOI19_ho_t4)C++17
0 / 100
1 ms504 KiB
//#pragma GCC optimize("O3,unroll-loops") //#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") #include<bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #define ll long long #define F first #define S second #define ull unsigned long long #define db double #define ldb long double #define pb push_back #define pf push_front #define ppb pop_back #define ppf pop_front #define yes cout<<"YES\n" #define no cout<<"NO\n" #define ordered_set tree<ll,null_type,less<ll>,rb_tree_tag,tree_order_statistics_node_update> #define all(x) x.begin(), x.end() const int mod = 1e9 + 7; const int N = 500001; using namespace std; using namespace __gnu_pbds; ll n, a, b, p[N][3], ans, f[N][3]; deque <pair <ll, ll>> g, v; ll gcd (ll a, ll b){while (a > 0 && b > 0){if (a >= b){a %= b;}else{b %= a;}}return a + b;} ll binpow (ll a, ll b){ a %= mod;if (b == 0){return 1;} else if (b % 2 == 1){ return binpow (a, b - 1) % mod * a % mod; } else{ ll t = binpow (a, b / 2) % mod; return t * t % mod; } } signed main (){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n; for (int i = 1; i <= n + n; i++){ cin >> a >> b; if (a < 1){ if (b >= 2){ p[1][2]++; ans += abs (a - 1) + abs (b - 2); } else{ p[1][1]++; ans += abs (a - 1) + abs (b - 1); } } else if (a > n){ if (b >= 2){ p[n][2]++; ans += abs (a - n) + abs (b - 2); } else{ p[n][1]++; ans += abs (a - n) + abs (b - 1); } } else{ if (b >= 2){ p[a][2]++; ans += abs (b - 2); } else{ p[a][1]++; ans += abs (b - 1); } } } for (int i = 1; i <= n; i++){ for (int y = 1; y <= 2; y++){ if (p[i][y] == 0){ v.pb ({i, y}); } else if (p[i][y] > 1){ g.pb ({i, y}); } } } for (int i = 0; i < v.size(); i++){ a = abs (v[i].F - g[0].F) + abs (v[i].S - g[0].S); b = 1e9; if (v.size() >= 2){ b = abs (v[i].F - g[1].F) + abs (v[i].S - g[1].S); } if (a < b){ ans += a; p[g[0].F][g[0].S]--; if (p[g[0].F][g[0].S] == 1){ g.ppf(); } } else{ ans += b; p[g[1].F][g[1].S]--; if (p[g[1].F][g[1].S] == 1){ g.erase (g.begin() + 1); } } } cout << ans << '\n'; }

Compilation message (stderr)

joi2019_ho_t4.cpp: In function 'int main()':
joi2019_ho_t4.cpp:88:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::deque<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   88 |  for (int i = 0; i < v.size(); i++){
      |                  ~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...