답안 #567087

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
567087 2022-05-23T07:56:15 Z birthdaycake Kitchen (BOI19_kitchen) C++17
0 / 100
1 ms 340 KB
#include<bits/stdc++.h>
#define endl '\n'
#define int long long
#define mod 1000000007
#define boost ios_base::sync_with_stdio(false), cin.tie(NULL);
using namespace std;
 
 
 

int a[200001],b[200001];

signed main(){
    boost;
    
    
    
    
    int n,m,k, tot = 0, hours = 0; cin >> n >> m >> k;
    priority_queue<pair<int,int>>x;
    for(int i = 0; i < n; i++) cin >> a[i];
    for(int j = 0; j < m; j++){
        cin >> b[j];
        x.push({b[j],j});
    }
    
    for(int i = 0; i < n; i++){
        vector<pair<int,int>>used;
        set<int>track;
        while(!x.empty() && track.size() < k && a[i] > 0){
            auto y = x.top();
            x.pop();
            if(y.first){
                b[y.second]--;
                a[i]--;
                if(b[y.second]) used.push_back({b[y.second],y.second});
                track.insert(y.second);
            }else{
                cout << "Impossible";
                return 0;
            }
        }
        if(track.size() < k){
            cout << "Impossible";
            return 0;
        }
        for(int j = 0; j < used.size(); j++){
            x.push({used[j].first,used[j].second});
        }
        tot += a[i];
    }
    priority_queue<int>s;
    while(!x.empty()){
        hours += x.top().first;
        x.pop();
    }
    if(hours - tot < 0) cout << "Impossible";
    else cout << hours - tot;
    
    
    
    return 0;
}

Compilation message

kitchen.cpp: In function 'int main()':
kitchen.cpp:30:42: warning: comparison of integer expressions of different signedness: 'std::set<long long int>::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
   30 |         while(!x.empty() && track.size() < k && a[i] > 0){
      |                             ~~~~~~~~~~~~~^~~
kitchen.cpp:43:25: warning: comparison of integer expressions of different signedness: 'std::set<long long int>::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
   43 |         if(track.size() < k){
      |            ~~~~~~~~~~~~~^~~
kitchen.cpp:47:26: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<long long int, long long int>, std::allocator<std::pair<long long int, long long int> > >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   47 |         for(int j = 0; j < used.size(); j++){
      |                        ~~^~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -