Submission #1080068

#TimeUsernameProblemLanguageResultExecution timeMemory
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()); } } }

Compilation message (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...