Submission #3008594


Source Code Expand

#include <iostream>
#include <vector>
#include <algorithm>
#include <utility>
using namespace std;
typedef long long ll;
typedef pair<ll,ll> P;
int n,m;
ll A[100010] = {0},B[100010] = {0};

int main(){
	cin >> n >> m;
	ll sum = 0;
	vector<P> v(n);
	for(int i=0;i<n;i++){
		cin >> A[i];
		B[i] = A[i];
		if(i>=1){
			if(B[i-1]>A[i]) A[i] += m;
			sum += A[i]-B[i-1];
			v[i-1] = {B[i-1],A[i]};
//			cout << v[i-1].first << " " << v[i-1].second << endl;
		}
	}
	sort(v.begin(),v.end());
	P F[2*(m+2)];
//	cout << endl;
	for(int i=0;i<2*(m+2);i++){
		F[i] = {0,0};
	}
	for(int i=0;i<n;i++){
		F[v[i].first+1].second++;
		F[v[i].second+1].second--;
		F[v[i].second+1].first -= v[i].second-v[i].first;
	}
	ll ans = 0;
	for(int i=2;i<2*(m+2);i++){
//		cout << F[i].first << " " << F[i].second << " ";
		F[i].second += F[i-1].second;
		F[i].first += F[i].second + F[i-1].first;
//		cout << F[i].first << " " << F[i].second << endl;
	}
	for(int i=1;i<=m;i++){
		ans = max(ans,F[i].first+F[i+m].first-F[i].second-F[i+m].second);
	}
//	cout << sum << endl;
	cout << sum - ans << endl;
}

Submission Info

Submission Time
Task E - guruguru
User idsigma
Language C++14 (GCC 5.4.1)
Score 700
Code Size 1123 Byte
Status AC
Exec Time 40 ms
Memory 6528 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 2688 KB
half1.txt AC 7 ms 3584 KB
half2.txt AC 18 ms 3968 KB
half3.txt AC 27 ms 3840 KB
half4.txt AC 29 ms 5376 KB
min_m.txt AC 1 ms 256 KB
min_n.txt AC 4 ms 3328 KB
mx0.txt AC 39 ms 6528 KB
mx1.txt AC 40 ms 6528 KB
mx2.txt AC 40 ms 6528 KB
rnd0.txt AC 2 ms 1024 KB
rnd1.txt AC 1 ms 384 KB
rnd2.txt AC 3 ms 768 KB
rnd3.txt AC 7 ms 1024 KB
rnd4.txt AC 26 ms 2816 KB
rnd5.txt AC 2 ms 384 KB
rnd6.txt AC 1 ms 256 KB
rnd7.txt AC 2 ms 1024 KB
rnd8.txt AC 4 ms 640 KB
rnd9.txt AC 1 ms 512 KB
sample1.txt AC 1 ms 256 KB
sample2.txt AC 1 ms 256 KB