λ¬Έμ νμΈνκΈ°
νμ΄
λ¬Έμ μ΄ν΄κ° μ½μ¬λ¦¬ λμ§ μμ§λ§ μ°¨κ·Όμ°¨κ·Ό μ½μ΄λ³΄λ©΄ λ μν μ±μ λ±μκ° μ£Όμ΄μ§κ³ , μ΄λ€ μ§μμ A, B λ₯Ό λΉκ΅νμ λ A μ λ±μκ° 1, 4 μ΄κ³ B μ λ±μκ° 2, 5 μΈ κ²½μ° B λ ν©κ²©ν μ μλ€. μ
λ ₯μ μλ₯ μ¬μ¬ λ±μ, λ©΄μ μν λ±μ μμΌλ‘ λ€μ΄μ¨λ€.
- λ μν μ±μ μ λͺ¨λ λΉκ΅ν΄μΌ νλ€. β 볡μ‘νλ€.
- νλλ₯Ό κ³ μ μν€μ. β μλ₯ μ¬μ¬ λ±μλ₯Ό μ λ ¬νλ€.
- λ©΄μ μνμ λ±μλ₯Ό λΉκ΅νλ€.
- μ΄μ€ for λ¬Έμ μ¬μ©ν΄ μλ₯ μ¬μ¬ λ±μ 1 λ±λΆν° N λ±κΉμ§ λΉκ΅νλ€.
λ€μμ μμ΄λμ΄λ₯Ό κ°μ§ μ± μ½λλ₯Ό ꡬννλ€.
#include <bits/stdc++.h>
using namespace std;
bool compare(const pair<int, int>& a, const pair<int, int>& b){
return a.first < b.first;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
int T, N, is_pass = 1;
pair<int, int> rank[100005];
cin >> T;
while(T--){
int res = 1;
cin >> N;
for(int i = 0; i < N; i++){
cin >> rank[i].first >> rank[i].second;
}
sort(rank, rank+N, compare);
for(int i = 1; i < N; i++){
is_pass = 1;
for(int j = 0; j < i; j++){
if(rank[i].second > rank[j].second){
is_pass = 0;
break;
}
}
if (!is_pass) continue;
else res++;
}
cout << res << '\n';
}
return 0;
}
νμ§λ§, μκ° μ΄κ³Όκ° λ΄λ€. N μ΄ 100,000 κ° μ΄κΈ° λλ¬Έμ μ΄μ€ for λ¬Έμ λ릴 κ²½μ° μ΅μ
μ μν©μ