Submission #1358582

#TimeUsernameProblemLanguageResultExecution timeMemory
1358582seedlessMatryoshka (JOI16_matryoshka)C++20
0 / 100
0 ms344 KiB
/*
    #ifdef LOCAL
        // 44Gq44Gc56eB44Gu44Kz44O844OJ44Gr5omL44KS5Ye644GZ44KT44Gg77yf5rGa44GE5omL44Gn56eB44Gu44Kz44O844OJ44GL44KJ5omL44KS6Zui44Gb44CB6LKg44GR54qs44CB5Zyw542E44G46KGM44GR44CC
    #endif
*/

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

using namespace std;

#define int long long

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

signed main(){

    cin >> n;

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

    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;
        return 0;
    }

    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;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...