Submission #1302236

#TimeUsernameProblemLanguageResultExecution timeMemory
1302236souvenir_vayneAliens (IOI16_aliens)C++20
12 / 100
65 ms448 KiB
#include <bits/stdc++.h> #include "aliens.h" #define pb push_back #define F0R(var) for (; (var) > 0; --(var)) #define endl '\n' template<typename... Ts> void debug_out(const Ts&... ts) { std::cerr << "DEBUG:"; if constexpr (sizeof...(Ts) > 0) { ((std::cerr << ' ' << ts), ...); } std::cerr << '\n'; } #define f first #define FINOUT cin.tie(0), cout.tie(0), ios::sync_with_stdio(0) #define s second #define debug(...) debug_out(__VA_ARGS__) #define all(x) x.begin(), x.end() using namespace std; typedef pair<long long, long long> pii; typedef vector<long long> vi; long long take_photos(int n, int m, int k, std::vector<int> r, std::vector<int> c) { vector<int> minL(m + 1); iota(all(minL), 1); for(long long i = 0; i < n; i++) { if(r[i] < c[i]) swap(r[i], c[i]); r[i]++, c[i]++; minL[r[i]] = min(minL[r[i]], c[i]); } long long ini = 0, mid, end = 1e13, ans; while(ini <= end) { mid = (ini + end) / 2; vector<pii> dp(m + 1, {1e13, 1}); dp[0] = {0, 0}; for(int i = 1; i <= m; i++) { if(minL[i] == i + 1) dp[i] = dp[i - 1]; for(int j = min(i, minL[i]); j >= 1; j--) { j = min(j, minL[j]); dp[i] = min(dp[i], {dp[j - 1].f + mid + (i - j + 1) * (i - j + 1), dp[j - 1].s + 1}); } } if(dp[m].s <= k) { ans = dp[m].f - k * mid; end = mid - 1; } else ini = mid + 1; } 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...