제출 #1080068

#제출 시각아이디문제언어결과실행 시간메모리
1080068serifefedartarAkcija (COCI21_akcija)C++17
90 / 110
5008 ms24584 KiB
#include <bits/stdc++.h>
using namespace std;

#define fast ios::sync_with_stdio(0);cin.tie(0)
typedef long long ll;
#define f first
#define s second
#define LOGN 21
const ll MOD = 1e9 + 7;
const ll MAXN = 150;

#define int long long
vector<pair<int,int>> v;
vector<set<int>> dp;

signed main() {
    fast;
    int n, k;
    cin >> n >> k;

    v = vector<pair<int,int>>(n);
    for (int i = 0; i < n; i++)
        cin >> v[i].s >> v[i].f;
    sort(v.begin(), v.end());

    dp = vector<set<int>>(n+1, set<int>());
    dp[0].insert(0);
    for (auto u : v) {
        for (int i = n; i >= 0; i--) {
            if (i+1 > u.f)
                continue;
            for (auto Q : dp[i]) {
                dp[i + 1].insert(Q + u.s);
                if (dp[i+1].size() > k)
                    dp[i+1].erase(prev(dp[i+1].end()));
            }
        }
    }

    for (int i = n; k && i >= 0; i--) {
        while (k && dp[i].size()) {
            cout << i << " " << *(dp[i].begin()) << "\n";
            k--;
            dp[i].erase(dp[i].begin());
        }
    }
}

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

Main.cpp: In function 'int main()':
Main.cpp:34:36: 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]
   34 |                 if (dp[i+1].size() > k)
      |                     ~~~~~~~~~~~~~~~^~~
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...