#include <cmath>
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
using ll = long long;
ll mod = 1000000007;
ll modpow(ll a, ll b) {
ll result = 1;
a %= mod;
while (b > 0) {
if (b % 2 == 1)
result = (result * a) % mod;
a = (a * a) % mod;
b /= 2;
}
return result;
}
int main() {
ll k, n;
cin >> k >> n;
vector<ll> home;
vector<ll> office;
ll sum_distance = 0;
if (k == 1) {
for (ll z = 0; z < n; z++) {
char p, q;
ll s, t;
cin >> p >> s >> q >> t;
if (p == q) {
sum_distance += llabs(s - t);
} else {
home.push_back(s);
office.push_back(t);
}
}
if (home.size() == 0) {
cout << sum_distance << endl;
return 0;
}
vector<ll> bridge_positions;
for (ll i = 0; i < home.size(); i++) {
bridge_positions.push_back(home[i]);
bridge_positions.push_back(office[i]);
}
sort(bridge_positions.begin(), bridge_positions.end());
ll pos = bridge_positions[bridge_positions.size() / 2];
ll ans = sum_distance;
for (ll i = 0; i < home.size(); i++) {
ans += llabs(home[i] - pos) + llabs(office[i] - pos) + 1;
}
cout << ans << endl;
}
return 0;
}
# | 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... |