방법

코드
#include<bits/stdc++.h>
#define MAXN 2000001
#define MAXH 5000001
using namespace std;
int n, h, d, mincnt, minans;
int cnt[MAXH];
int main() {
scanf("%d %d", &n, &h);
for (int i = 0; i < n; i++) {
scanf("%d", &d);
if (i % 2 == 0) {
cnt[0]++; // h = 0에서 시작
cnt[d]--; // d-1까지의 길이
}
else {
cnt[h - d]++; // h-d부터 천장까지
}
}
minans = MAXN;
int temp = 0;
for (int i = 0; i < h; i++) {
temp += cnt[i];
if (temp < minans) {
minans = temp;
mincnt = 1;
}
else if (temp == minans) {
mincnt++;
}
}
printf("%d %d\n", minans, mincnt);
return 0;
}