Submission #530963

#TimeUsernameProblemLanguageResultExecution timeMemory
530963N1NT3NDOAkcija (COCI21_akcija)C++14
0 / 110
5097 ms92748 KiB
#include <bits/stdc++.h> #define ll long long #define pb push_back //#include <ext/pb_ds/assoc_container.hpp> //#include <ext/pb_ds/tree_policy.hpp> #define sz(x) (int)x.size() #define fi first #define sd second #define all(x) x.begin(), x.end() //#pragma GCC target ("avx2") //#pragma GCC optimization ("O3") //#pragma GCC optimization ("unroll-loops") using namespace std; //using namespace __gnu_pbds; //typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set; //#define int long long const ll inf = (ll)1e15; const int N = 2050; ll w[N], dp[N][3][N]; int n, k, d[N], nom[N]; vector< pair<int, ll> > ans; bool cmp(int i, int j) { return d[i] < d[j]; } bool cmp2(pair<int, ll> a, pair<int, ll> b) { if (a.fi < b.fi) return 0; else if (a.fi == b.fi) { if (a.sd < b.sd) return 1; else return 0; } else return 1; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> k; for(int i = 1; i <= n; i++) { cin >> w[i] >> d[i]; nom[i] = i; } sort(nom + 1, nom + n + 1, cmp); for(int i = 0; i <= n; i++) for(int j = 0; j <= 2; j++) for(int c = 0; c <= n; c++) dp[i][j][c] = inf; for(int i = 0; i <= n; i++) dp[i][0][0] = 0; for(int i = 1; i <= n; i++) { for(int time = 0; time <= n; time++) { for(int j = 1; j <= n; j++) { dp[i][j][time] = min(dp[i][j][time], dp[i - 1][j][time]); if (time < d[nom[i]] && dp[i][j][time + 1] > dp[i - 1][j - 1][time] + w[nom[i]]) { dp[i][j][time + 1] = dp[i - 1][j - 1][time] + w[nom[i]]; } } } } for(int i = 0; i <= n; i++) for(int j = 0; j <= n; j++) for(int time = 0; time <= n; time++) { if (dp[i][j][time] == inf) ans.pb({0, 0}); else ans.pb({j, dp[i][j][time]}); } sort(ans.begin(), ans.end(), cmp2); for(int i = 0; i < k; i++) { cout << ans[i].fi << ' ' << ans[i].sd << '\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...