[문제 링크] : https://www.acmicpc.net/problem/3020
#include <iostream>
using namespace std;
int U[500001];
int D[500001];
int main(){
int N, H, inp;
cin >> N >> H;
for(int i=0; i<N; i++){
cin >> inp;
if(i % 2 == 0){
D[inp]++;
}
else{
U[H - inp + 1]++;
}
}
for(int i=1; i<=H; i++){
U[i] += U[i-1];
D[H-i] += D[H-i+1];
}
int Ans = 1234567890;
int Cnt = 0;
for(int i=1; i<=H; i++){
if(U[i] + D[i] < Ans){
Cnt = 1;
Ans = U[i] + D[i];
}
else if(U[i] + D[i] == Ans){
Cnt++;
}
}
cout << Ans << " " << Cnt << "\n";
return 0;
}
'알고리즘' 카테고리의 다른 글
[알고리즘] 백준 26307 - Correct (C++) (0) | 2025.01.28 |
---|---|
[알고리즘] 백준 17406 - 배열 돌리기 4 (C++) (0) | 2025.01.27 |
[알고리즘] 백준 16637 - 괄호 추가하기 (C++) (0) | 2025.01.25 |
[알고리즘] 백준 17472 - 다리 만들기 2 (C++) (0) | 2025.01.23 |
[알고리즘] 백준 17140 - 이차원 배열과 연산 (C++) (0) | 2025.01.22 |