Submission #1397892


Source Code Expand

#include <iostream>
#define REP(i, a, n) for(int i = ((int) a); i < ((int) n); i++)
#define INF 100000000000000000LL
using namespace std;
typedef long long ll;

int N, M, A[100010];
ll s[100010], p[100010], q[100010];

int main(void) {
  cin >> N >> M;
  REP(i, 0, N) cin >> A[i], A[i]--;

  s[0] = 0;
  REP(i, 0, N - 1) {
    if(A[i] > A[i + 1] && A[i] != 0) s[0] += A[i + 1] + 1;
    else s[0] += (A[i + 1] - A[i] + M) % M;
  }

  REP(i, 0, N) p[i] = 0;
  REP(i, 0, N - 1) p[A[i + 1]] += (A[i + 1] - A[i] - 1 + M) % M;

  REP(i, 0, M) q[i] = 0;
  REP(i, 0, N - 1) {
    if(A[i] < A[i + 1]) {
      q[A[i] + 1]++;
      q[A[i + 1]]--;
    } else {
      q[A[i] + 1]++;
      q[M]--;
      q[0]++;
      q[A[i + 1]]--;
    }
  }
  REP(i, 0, M) q[i + 1] += q[i];

  REP(i, 0, M - 1) s[i + 1] = s[i] + p[i] - q[i];

  ll ans = INF;
  REP(i, 0, M) ans = min(ans, s[i]);
  cout << ans << endl;

  return 0;
}

Submission Info

Submission Time
Task E - guruguru
User kshinya
Language C++14 (GCC 5.4.1)
Score 700
Code Size 949 Byte
Status AC
Exec Time 38 ms
Memory 2944 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 11 ms 1408 KB
half1.txt AC 5 ms 2176 KB
half2.txt AC 17 ms 1920 KB
half3.txt AC 27 ms 1792 KB
half4.txt AC 29 ms 2560 KB
min_m.txt AC 1 ms 256 KB
min_n.txt AC 2 ms 1792 KB
mx0.txt AC 38 ms 2944 KB
mx1.txt AC 38 ms 2944 KB
mx2.txt AC 38 ms 2944 KB
rnd0.txt AC 1 ms 640 KB
rnd1.txt AC 1 ms 384 KB
rnd2.txt AC 3 ms 640 KB
rnd3.txt AC 7 ms 640 KB
rnd4.txt AC 23 ms 1152 KB
rnd5.txt AC 2 ms 256 KB
rnd6.txt AC 1 ms 256 KB
rnd7.txt AC 2 ms 768 KB
rnd8.txt AC 4 ms 384 KB
rnd9.txt AC 1 ms 384 KB
sample1.txt AC 1 ms 256 KB
sample2.txt AC 1 ms 256 KB