# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
106344 | tincamatei | Coin Collecting (JOI19_ho_t4) | C++14 | 324 ms | 504 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 20;
pair<int, int> points[MAX_N];
int main() {
#ifdef HOME
FILE *fin = fopen("coin.in", "r");
FILE *fout = fopen("coin.out", "w");
#else
FILE *fin = stdin;
FILE *fout = stdout;
#endif
int n;
fscanf(fin, "%d", &n);
for(int i = 0; i < 2 * n; ++i)
fscanf(fin, "%d%d", &points[i].first, &points[i].second);
sort(points, points + 2 * n);
long long best = 1LL << 60;
for(int mask = 0; mask < (1 << (2 * n)); ++mask) {
long long rez = 0LL;
int lp = 0, up = 0;
for(int i = 0; i < 2 * n; ++i)
if((1 << i) & mask) {
++lp;
rez = rez + llabs(points[i].first - lp) + llabs(points[i].second - 1);
} else {
++up;
rez = rez + llabs(points[i].first - up) + llabs(points[i].second - 2);
}
if(lp == n && up == n)
best = min(best, rez);
}
fprintf(fout, "%lld", best);
fclose(fin);
fclose(fout);
return 0;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |