Submission #1366345

#TimeUsernameProblemLanguageResultExecution timeMemory
1366345JohanPalembang Bridges (APIO15_bridge)C++20
8 / 100
2094 ms11304 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 2e5 + 5;
const int INF = 1e18;

signed main(){
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int k, n, tot = 0;
  cin >> k >> n;
  set < int > st;
  vector < array < int , 2 > > v;
  for(int i = 0; i < n; i++){
    char ty1, ty2;
    int cor1, cor2;
    cin >> ty1 >> cor1 >> ty2 >> cor2;
    st.insert(cor1);
    st.insert(cor2);
    if(ty1 == ty2){
      tot += abs(cor1 - cor2);
    }
    else {
      if(cor1 > cor2)
        swap(cor1, cor2);
      v.push_back({cor1, cor2});
    }
  }
  int mn = INF;
  for(auto d : st){
    int cur = tot;
    for(auto [l, r] : v){
      if(d >= l && d <= r)
        cur += (r - l + 1);
      else if(d > r){
        cur += d - r + d - l + 1;
      }
      else {
        cur += r - d + l - d + 1;
      }
    }
    mn = min(mn, cur);
  }
  cout << mn << endl;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...