Submission #1224679

#TimeUsernameProblemLanguageResultExecution timeMemory
1224679maya_sAliens (IOI16_aliens)C++20
0 / 100
0 ms324 KiB
#include "aliens.h" #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<ll, ll> pll; typedef pair<ll, pair<pll, pll>> ppll; const ll inf = 1e18; pll united_loc(pll a, pll b){ return {min(a.first, b.first), max(a.second, b.second)}; } ll calc_difference(pll a, pll b){ return max(a.second, b.second) * max(a.second, b.second) - a.second * a.second - b.second * b.second + min(a.second, b.second) * min(a.second, b.second); } long long take_photos(int n, int m, int k, vector<int> r, vector<int> c) { ll cnt = 0; vector<ll> v(m); for(ll i = 0; i < n; i++) v[r[i]] = max(v[r[i]], (ll)abs(r[i] - c[i])); set<pll> s; ll ans = 0; for(ll i = 0; i < n; i++) s.insert({r[i], v[r[i]]}), ans += v[r[i]] * v[r[i]]; while(s.size() > k){ pll prev = {-1, -1}; ppll mi = {inf, {{-1, -1}, {-1, -1}}}; for(pll i : s){ if(prev.first != -1) mi = min(mi, {calc_difference(prev, i), {prev, i}}); prev = i; } auto[x, p] = mi; auto[a, b] = p; s.erase(a); s.erase(b); s.insert(united_loc(a, b)); ans += x; } return ans; }

Compilation message (stderr)

aliens.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
aliens_c.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...