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 |
|
|
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 |