Submission #1227302

#TimeUsernameProblemLanguageResultExecution timeMemory
1227302madamadam3Aliens (IOI16_aliens)C++20
0 / 100
1 ms328 KiB
#include "aliens.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; using vi = vector<int>; using vvi = vector<vi>; int n, m, k; vi r, c, L, R; ll take_photos(int N, int M, int K, vi R, vi C) { set<int> points; for (int i = 0; i < N; i++) points.insert(i); for (int i = 0; i < N; i++) { if (!points.count(i)) continue; vector<int> to_erase; int Li = min(R[i], C[i]), Ri = max(R[i], C[i]); for (auto &el : points) { if (i == el) continue; if (Li <= C[el] && C[el] <= Ri && Li <= R[el] && R[el] <= Ri) { to_erase.push_back(el); } } for (auto &el : to_erase) { points.erase(el); } } vector<int> sorted_points(points.begin(), points.end()); sort(sorted_points.begin(), sorted_points.end(), [&](int a, int b) { int La = min(R[a], C[a]), Ra = max(R[a], C[a]), Lb = min(R[b], C[b]), Rb = max(R[b], C[b]); return La == Lb ? Ra < Rb : La < Lb; }); n = points.size(); m = M; k = K; r.resize(n); c.resize(n); L.resize(n); R.resize(n); for (int i = 0; i < n; i++) { r[i] = R[sorted_points[i]]; c[i] = C[sorted_points[i]]; L[i] = min(r[i], c[i]); R[i] = max(r[i], c[i]); } ll ans = 0; for (int i = 0; i < n; i++) { ll w = R[i] - L[i] + 1; ans += w*w; } 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...