답안 #97415

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
97415 2019-02-15T23:15:36 Z silxikys Exhibition (JOI19_ho_t2) C++14
0 / 100
3 ms 384 KB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;

const int maxn = 20;
int N, M;
int frames[maxn];

int main()
{
    cin >> N >> M;
    vector<pair<int,int>> pictures;
    for (int i = 0; i < N; i++) {
        int a, b; cin >> a >> b;
        pictures.push_back({a,b});
    }
    //coordinate compress values
    /*
    sort(pictures.begin(),pictures.end(),[](auto a, auto b) {
            return a.second < b.second;
            });
    map<int,int> comp;
    int c = 1;
    for (auto& p: pictures) {
        if (comp.count(p.second)) p.second = comp[p.second];
        else p.second = comp[p.second] = c++;
    }
    */
    sort(pictures.begin(),pictures.end(),[](auto a, auto b) {
            if (a.first != b.first) return a.first < b.first;
            return a.second < b.second;
            });
    for (int i = 1; i <= M; i++) cin >> frames[i];
    sort(frames+1,frames+M+1);

    int ans = 0;
    for (int mask = 1; mask < (1<<N); mask++) {
        vector<pair<int,int>> vs;
        bool poss = true;
        for (int i = 0; i < N; i++) {
            if (mask & (1<<i)) {
                vs.push_back(pictures[i]);
                if (vs.size() > 1 && vs[vs.size()-1].second < vs[vs.size()-2].second) {
                    poss = false;
                    break;
                }
            }
        }
        if ((int)vs.size() > M) continue;
        if (poss) {
            int curr = M;
            for (int i = vs.size() - 1; i >= 0; i--) {
                if (vs[i].first > frames[curr]) {
                    poss = false;
                    break;
                }
                curr--;
            }
        }
        if (poss) {
            ans = min(max(ans,(int)vs.size()),M);
        }
    }
    cout << ans << '\n';
}

# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 384 KB Output is correct
2 Correct 2 ms 384 KB Output is correct
3 Correct 2 ms 256 KB Output is correct
4 Correct 3 ms 384 KB Output is correct
5 Incorrect 2 ms 384 KB Output isn't correct
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 384 KB Output is correct
2 Correct 2 ms 384 KB Output is correct
3 Correct 2 ms 256 KB Output is correct
4 Correct 3 ms 384 KB Output is correct
5 Incorrect 2 ms 384 KB Output isn't correct
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 384 KB Output is correct
2 Correct 2 ms 384 KB Output is correct
3 Correct 2 ms 256 KB Output is correct
4 Correct 3 ms 384 KB Output is correct
5 Incorrect 2 ms 384 KB Output isn't correct
6 Halted 0 ms 0 KB -