Submission #8914980


Source Code Expand

#include <bits/stdc++.h>

using namespace std;

#define SZ(x) (int)(x.size())

using ll = long long;
using ld = long double;
using P = pair<int, int>;
using vi = vector<int>;
using vvi = vector<vector<int>>;
using vll = vector<ll>;
using vvll = vector<vector<ll>>;
const double eps = 1e-10;
const int MOD = 1000000007;
const int INF = 1000000000;
const ll LINF = 1ll<<50;

template<typename T>
void printv(const vector<T>& s) {
  for(int i=0;i<(int)(s.size());++i) {
    cout << s[i];
    if(i == (int)(s.size())-1) cout << endl;
    else cout << " ";
  }
}

int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  cout << fixed << setprecision(10);

  int n, m; cin >> n >> m;
  vi a(n);
  for(int i=0;i<n;++i) {
    cin >> a[i];
    a[i]--;
  }

  vector<ll> b(m);

  for(int i=0;i<n-1;++i) {
    if(a[i] != m-1) b[a[i]+1]--;
    b[a[i+1]]++;
    if(a[i] > a[i+1] && a[i] != 0) {
      b[0]--;
    }
  }

  vll su(m);
  su[0] = b[0];
  for(int i=1;i<m;++i) {
    su[i] = su[i-1] + b[i];
  }
  
  for(int i=1;i<n;++i) {
    su[a[i]] += (a[i] + m - a[i-1]) % m - 1;
  }
  //printv(su);

  ll ans = 0;
  for(int i=1;i<n;++i) {
    ans += min((a[i] + m - a[i-1]) % m, a[i] + 1);
  }
  //cout << ans << endl;

  ll mi = ans;
  for(int i=0;i<m;++i) {
    ans += su[i];
    mi = min(mi, ans);
  }
  cout << mi << endl;

}

Submission Info

Submission Time
Task E - guruguru
User kanra824
Language C++14 (GCC 5.4.1)
Score 700
Code Size 1395 Byte
Status AC
Exec Time 11 ms
Memory 2176 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 700 / 700
Status
AC × 2
AC × 22
Set Name Test Cases
Sample sample1.txt, sample2.txt
All half0.txt, half1.txt, half2.txt, half3.txt, half4.txt, min_m.txt, min_n.txt, mx0.txt, mx1.txt, mx2.txt, rnd0.txt, rnd1.txt, rnd2.txt, rnd3.txt, rnd4.txt, rnd5.txt, rnd6.txt, rnd7.txt, rnd8.txt, rnd9.txt, sample1.txt, sample2.txt
Case Name Status Exec Time Memory
half0.txt AC 4 ms 1280 KB
half1.txt AC 3 ms 1920 KB
half2.txt AC 6 ms 1664 KB
half3.txt AC 8 ms 1280 KB
half4.txt AC 9 ms 1920 KB
min_m.txt AC 1 ms 256 KB
min_n.txt AC 2 ms 1792 KB
mx0.txt AC 11 ms 2176 KB
mx1.txt AC 11 ms 2176 KB
mx2.txt AC 11 ms 2176 KB
rnd0.txt AC 1 ms 640 KB
rnd1.txt AC 1 ms 384 KB
rnd2.txt AC 2 ms 512 KB
rnd3.txt AC 3 ms 512 KB
rnd4.txt AC 8 ms 640 KB
rnd5.txt AC 1 ms 256 KB
rnd6.txt AC 1 ms 256 KB
rnd7.txt AC 1 ms 640 KB
rnd8.txt AC 2 ms 384 KB
rnd9.txt AC 1 ms 384 KB
sample1.txt AC 1 ms 256 KB
sample2.txt AC 1 ms 256 KB