https://codeforces.com/contest/2210/problem/B
앞에서부터 보면서, 현재 의자가 체크되어있다면, cnt--을 해줍니다. 그리고, cnt++을 한 뒤, 현재 쓰여진 위치에 체크를 해줍니다. 이를 반복하면서 cnt의 최댓값을 구해주면 됩니다.
#include <iostream>
#include <algorithm>
#define ll long long
using namespace std;
int main()
{
ios_base::sync_with_stdio(false); cin.tie(NULL);
ll T,N;
cin>>T;
while (T--)
{
cin>>N;
bool ck[202020]={0};
ll cnt=0,x,Ans=0;
for (ll i=1;i<=N;i++)
{
cin>>x;
if (ck[i]) cnt--;
cnt++,ck[x]=true;
Ans=max(Ans,cnt);
}
cout<<Ans<<"\n";
}
}

| 쿠폰 (JUNGOL 3762) (0) | 2026.04.20 |
|---|---|
| 구두 수선공 (JUNGOL 6271) (0) | 2026.04.20 |
| A Simple Sequence (CF R 1089 Div.2 - A) (0) | 2026.04.19 |
| Grid Covering (CF R 1091 Div.2 - C) (0) | 2026.04.18 |
| Unique Values (Easy version) (CF R 1093 Div.2 - D1) (0) | 2026.04.18 |