#define _CRT_SECURE_NO_WARNINGS
#include <iostream> // cpp
#include <algorithm>
// 자료 구조
#include <vector>
using namespace std;
int t, n;
vector<pair<int, int>> v;
void INPUT()
{
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
cin >> t;
}
int passCnt()
{
int ans = 1; // 1st of doc, definitely P
// Record the greatest interview rank among previous people
int interviewRank = v[0].second;
for(int i = 1; i < n; i++)
{
// P if front orders's interview lower(score) than back order's interview
if (interviewRank > v[i].second)
{
ans++;
interviewRank = v[i].second;
}
}
return ans;
}
void SOLVE()
{
while (t--)
{
// Input
cin >> n;
for (int i = 0; i < n; i++)
{
int a, b; cin >> a >> b;
v.push_back({ a,b });
}
// Sort by document(ascending),
// then "NP" if front orders's interview higher than back order
sort(v.begin(), v.end());
cout << passCnt() << '\n';
// Initialize
v.clear();
}
}
int main()
{
INPUT();
SOLVE();
}
GOLD5 미만 난이도는 알고리즘 및 풀이 설명을 주석으로 대체합니다.
주석을 참고해주세요.