제출 #1360837

#제출 시각아이디문제언어결과실행 시간메모리
1360837po_rag526Matryoshka (JOI16_matryoshka)C++20
11 / 100
339 ms428 KiB
/*
    #ifdef LOCAL
        // 44Gq44Gc56eB44Gu44Kz44O844OJ44Gr5omL44KS5Ye644GZ44KT44Gg77yf5rGa44GE5omL44Gn56eB44Gu44Kz44O844OJ44GL44KJ5omL44KS6Zui44Gb44CB6LKg44GR54qs44CB5Zyw542E44G46KGM44GR44CC
    #endif
*/

#include <bits/stdc++.h>
#include <cstdint>

using namespace std;

#define int long long

int n, q;
int r[15], h[15];

signed main(){

    cin >> n >> q;

    for(int i = 0; i < n; i++){
        cin >> r[i] >> h[i];
    }

    while(q--){

        int a, b;
        cin >> a >> b;

        vector<int> v;

        for(int i = 0; i < n; i++){
            if(r[i] >= a && h[i] <= b){
                v.push_back(i);
            }
        }

        int m = v.size();

        if(m == 0){
            cout << 0 << endl;
            continue;
        }

        vector<int> p(m);
        for(int i = 0; i < m; i++) p[i] = i;

        int ans = 1e9;

        do{

            vector<pair<int,int>> c;

            for(int i = 0; i < m; i++){

                int x = v[p[i]];

                int f = 0;

                for(int j = 0; j < (int)c.size(); j++){
                    if(c[j].first < r[x] && c[j].second < h[x]){
                        c[j] = {r[x], h[x]};
                        f = 1;
                        break;
                    }
                }

                if(!f){
                    c.push_back({r[x], h[x]});
                }
            }

            ans = min(ans, (int)c.size());

        } while(next_permutation(p.begin(), p.end()));

        cout << ans << endl;
    }
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…