이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
int main() {
int K, N;
cin >> K >> N;
vector<int> P(N), Q(N);
vector<int> A, B;
long long ans = 0, tot = LLONG_MAX;
vector<int> D;
for (int i = 0; i < N; i++) {
char X, Y;
cin >> X >> P[i] >> Y >> Q[i];
if (X > Y) {
swap(P[i], Q[i]);
}
if (X == Y) {
ans += abs(P[i] - Q[i]);
} else {
D.push_back(P[i]);
D.push_back(Q[i]);
A.push_back(P[i]);
B.push_back(Q[i]);
}
}
P = A, Q = B;
N = (int)P.size();
if (K == 1) {
for (int x : D) {
long long res = 0;
for (int i = 0; i < N; i++) {
res += abs(P[i] - x) + abs(Q[i] - x) + 1;
}
tot = min(tot, ans + res);
}
} else {
for (int x : D) {
for (int y : D) {
long long res = 0;
for (int i = 0; i < N; i++) {
res += min(abs(P[i] - x) + abs(Q[i] - x), abs(P[i] - y) + abs(Q[i] - y)) + 1;
}
tot = min(tot, ans + res);
}
}
}
cout << tot << "\n";
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |