제출 #1163498

#제출 시각아이디문제언어결과실행 시간메모리
1163498gohchingjaykAkcija (COCI21_akcija)C++20
10 / 110
162 ms16908 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; using ull = unsigned long long; #define int ll #define uint ull pair<int, int> prods[20 + 5]; int n, k; signed main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); cin >> n >> k; for (int i = 0; i < n; ++i) cin >> prods[i].second >> prods[i].first; sort(prods, prods + n); uint mask = (1 << n) - 1; uint perm = 0; vector<pair<int, int>> solns; do { int cost = 0; int time = 1; int bought = 0; for (int i = 0; i < n; ++i) { if (((perm >> i) & 1) == 0) continue; if (prods[i].first < time) continue; time++; bought++; cost += prods[i].second; } if (bought == __builtin_popcountll(perm)) { solns.emplace_back(pair{-bought, cost}); } perm = (perm - mask) & mask; } while (perm); sort(solns.begin(), solns.end()); for (int i = 0; i < k; ++i) { cout << -solns[i].first << ' ' << solns[i].second << '\n'; } }
#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...