#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> median;
vector<ll> home;
vector<ll> ofiice;
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 {
int mid = (s + t) / 2;
median.push_back(mid);
home.push_back(s);
ofiice.push_back(t);
}
}
if (median.size() == 0) {
cout << sum_distance << endl;
return 0;
}
ll j = median.size();
sort(median.begin(), median.end());
ll sum = j / 2;
ll pos = median[sum];
ll ans = sum_distance;
for (int i = 0; i < home.size(); i++) {
ans += (llabs(home[i] - pos) + llabs(ofiice[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... |