제출 #745960

#제출 시각아이디문제언어결과실행 시간메모리
745960vjudge1Kitchen (BOI19_kitchen)C++17
9 / 100
1055 ms300 KiB
#include <bits/stdc++.h>

using namespace std;
using ll = long long int;

const ll mod = 1e9 + 7;

ll f(vector<ll>& t, vector<ll>& v, int k){
    vector<pair<ll, int>> p;
    for(auto i : v){
        p.push_back({i, 0});
    }
    for(auto& i : t){
        for(int j = 0; j < p.size(); ++j){
            if(i > 0 && p[j].second < k){       //mindehol legalabb k chef
                --i;
                --p[j].first;
                ++p[j].second;
            }
        }
    }
    ll sumv = 0, sumt = 0;
    for(int j = 0; j < p.size(); ++j){
        if(p[j].second < k){
            return 1e9;
        }
        sumv += p[j].first;
    }
    for(auto& i : t){
        sumt += i;
    }
    if(sumt - sumv < 0) return 1e9;
    return sumt - sumv;
}

int main(){
    int n, m, k;
    cin >> n >> m >> k;
    vector<ll> v(n), t(m);
    ll sumv = 0;
    for(auto& i : v){
        cin >> i;
    }
    for(auto& i : t){
        cin >> i;
    }
    if(m < k || *min_element(begin(v), end(v)) < k){
        cout << "Impossible" << endl;
        return 0;
    }
    ll sol = 1e9;
    for(ll i = 0; i < (1ll << m); ++i){
        vector<ll> munkas;
        for(int j = 0; j < m; ++j){
            if((1ll << j) & i){
                munkas.push_back(t[j]);
            }
        }
        sol = min(sol, f(munkas, v, k));
    }
    if(sol == 1e9){
        cout << "Impossible" << endl;
    }
    else{
        cout << sol << endl;
    }
    return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

kitchen.cpp: In function 'll f(std::vector<long long int>&, std::vector<long long int>&, int)':
kitchen.cpp:14:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<long long int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   14 |         for(int j = 0; j < p.size(); ++j){
      |                        ~~^~~~~~~~~~
kitchen.cpp:23:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<long long int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   23 |     for(int j = 0; j < p.size(); ++j){
      |                    ~~^~~~~~~~~~
kitchen.cpp: In function 'int main()':
kitchen.cpp:40:8: warning: unused variable 'sumv' [-Wunused-variable]
   40 |     ll sumv = 0;
      |        ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...