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>
#define st first
#define nd second
using namespace std;
const long long INF = 1e10;
const int MOD = 1e9+7;
const int MAXN = 30000;
long long n, k, ans, cnt;
vector < pair<int,int> > a;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
//freopen("input.txt","r",stdin);
//freopen("output.txt","w",stdout);
cin >> k >> n;
vector < long long > v, v1, v2;
for(int i = 1; i <= n; i++) {
long long x1, x2;
char c1, c2;
cin >> c1 >> x1 >> c2 >> x2;
if(c1 == c2) ans += abs(x2-x1);
else {
v.push_back(x1);
v.push_back(x2);
v1.push_back(x1);
v2.push_back(x2);
cnt++;
}
}
ans += cnt;
sort(v.begin(),v.end());
//for(int i = 0; i < v.size(); i++)
// cout << v[i] << " ";
//cout << endl;
if(k == 2) {
v.push_back(INF);
long long num = INF;
for(int i = 0; i < v.size(); i++){
for(int j = i+1; j < v.size(); j++){
long long b1, b2;
b1 = v[i]; b2 = v[j];
if(b1 == b2) continue;
long long sum = 0;
// if(b1 == 2 && b2 == 6){
for(int k = 0; k < v1.size(); k++)//{
sum += min(abs(b1-v1[k])+abs(b1-v2[k]),
abs(b2-v1[k])+abs(b2-v2[k]));
//cout << k<<" - "<< v1[k] << " " << v2[k] <<" : "<<sum << endl;
//}
// }
//cout << b1 << " " << b2 <<" - "<<sum << endl;
num = min(num,sum);
}
}
cout << ans+num;
return 0;
}
if(v.size() > 1){
int x = v[(v.size()+1)/2 - 1];
for(int i = 0; i < v.size(); i++)
ans += abs(x-v[i]);
}
cout << ans;
}
Compilation message (stderr)
bridge.cpp: In function 'int main()':
bridge.cpp:47:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0; i < v.size(); i++){
^
bridge.cpp:48:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int j = i+1; j < v.size(); j++){
^
bridge.cpp:54:34: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int k = 0; k < v1.size(); k++)//{
^
bridge.cpp:71:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0; i < v.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... |