제출 #1359093

#제출 시각아이디문제언어결과실행 시간메모리
1359093hexopiaKitchen (BOI19_kitchen)C++20
0 / 100
1 ms344 KiB
#include <bits/stdc++.h>
using namespace std;
int a[305],b[305];
int32_t main() {
    ios_base::sync_with_stdio(0),cin.tie(0);
    int n,m,k;cin>>n>>m>>k;
    for(int i = 1 ; i<=n ; ++i) cin>>a[i];
    for(int i = 1 ; i<=m  ; ++i) cin>>b[i];
    int sum1 = 0;
    for(int i = 1 ; i<=n ; ++i) sum1 += a[i];
    sort(b+1,b+m+1);
    reverse(b+1,b+m+1);
    int l = k,r = m+1;
    while(l<r) {
        bool ch = 1;
        int md = (l+r)/2,sum = 0;
        priority_queue<int> pq;
        for(int i = 1 ; i<=md ; ++i) pq.push(b[i]),sum += b[i];
        if(sum < sum1) ch = 0;
        for(int i = 0; i<n ; ++i) {
            vector<int> tmp;
            for(int j = 0; j<k ; ++j) {
                int get = pq.top();pq.pop();
                if(get <= 0) ch = 0;
                tmp.push_back(get-1);
            }
            for(int x:tmp) pq.push(x);
        }
        if(ch) r = md;
        else l = md+1;
    }
    if(l >= m+1) cout << "Imposssible";
    else cout << l;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…