안녕하세요. 오늘은 데이터 스트릭으로 섬을 만들 거예요.
https://www.acmicpc.net/problem/10432
수가 12개밖에 없으므로 아무거나 하면 됩니다.
저는 i,j로 두개의 점을 잡은 다음 그 사이의 최솟값이 arr[i-1]과 arr[j+1]보다 큰지 확인했습니다.
#include <iostream>
#include <algorithm>
#define ll long long
using namespace std;
int main(void)
{
ios_base::sync_with_stdio(false); cin.tie(NULL);
ll P, T, i, j, arr[13] = { 0 }, cnt;
cin >> P;
while (P--)
{
cin >> T; cnt = 0;
for (i = 1; i <= 12; i++) cin >> arr[i];
for (i = 2; i <= 11; i++)
{
ll mn = 2e9;
for (j = i; j <= 11; j++)
{
mn = min(mn, arr[j]);
if (arr[i - 1] < mn && arr[j + 1] < mn) cnt++;
}
}
cout << T << ' ' << cnt << "\n";
}
}
감사합니다.