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 <iostream>
#include <vector>
#include <map>
#include <algorithm>
using namespace std;
long long K, N, M, L[100009], R[100009], cnt;
long long solve_1() {
vector<long long>X; map<long long, long long>Map;
for (int i = 0; i < M; i++) {
X.push_back(L[i]);
X.push_back(R[i]);
Map[L[i]] += 2; Map[R[i]] += 2;
}
sort(X.begin(), X.end());
X.erase(unique(X.begin(), X.end()), X.end());
long long cx = 0, sum = 0, minx = (1LL << 60), dep = -M * 2;
for (int i = 0; i < M; i++) sum += L[i] + R[i];
for (int i = 0; i < X.size(); i++) {
sum += (X[i] - cx) * dep;
minx = min(minx, sum);
dep += Map[X[i]];
cx = X[i];
}
return minx;
}
long long solve_2() {
return 0;
}
int main() {
cin >> K >> N;
for (int i = 0; i < N; i++) {
char c1, c2; int cl, cr;
cin >> c1 >> cl >> c2 >> cr;
if (c1 != c2 && cl != cr) {
if (cl > cr) swap(cl, cr);
L[M] = cl;
R[M] = cr;
cnt++; M++;
}
else cnt += 1LL * abs(cl - cr);
}
if (K == 1) {
cout << solve_1() + cnt << endl;
}
if (K == 2) {
cout << solve_2() + cnt << endl;
}
return 0;
}
Compilation message (stderr)
bridge.cpp: In function 'long long int solve_1()':
bridge.cpp:22:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i = 0; i < X.size(); i++) {
~~^~~~~~~~~~
# | 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... |