Cod sursa(job #2587711)

Utilizator isa_tudor_andreiAndrei Tudor isa_tudor_andrei Data 23 martie 2020 14:27:13
Problema Componente biconexe Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.88 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("permutare2.in");
ofstream fout("permutare2.out");

const int NMAX = 1e5;

int v[NMAX + 1], n, m;

long long solve( long long l ) {
  long long ans = 0;
  for( int i = 1; i <= n; i ++ )
    ans += min(abs(1LL * v[i] - l), min(m - v[i] + l, v[i] + m - l) );
  return ans;
}

/*long long cb( int x ) {
  long long pas = 1<<29;
  int r = x;
  while( pas ) {
    pas /= 2;
    if( r + pas <= m && solve(r + pas - 1) >= solve(r + pas) )
      r += pas;
  }
  return r;
}*/

int main() {
    fin>>m>>n;
    int x;
    for( int i = 1; i <= m; i ++ )
      fin>>x;
    v[1] = 0;
    for( int i = 2; i <= n; i ++ )
      fin>>v[i];
    sort( v + 1, v + n + 1 );
    long long ans = solve(v[n / 2]);
    if( n % 2 == 0 ) {
      ans = min(ans, solve(v[n / 2 - 1]));
    }
    fout<<ans;
    return 0;
}