Submission #1166852

#TimeUsernameProblemLanguageResultExecution timeMemory
1166852SangNile (IOI24_nile)C++20
67 / 100
2094 ms6784 KiB
#include<bits/stdc++.h> using namespace std; #define int long long #define FOR(i, a, b) for (int i = (a), _b = (b); i <= _b; i++) #define FORD(i, a, b) for (int i = (a), _b = (b); i >= _b; i--) #define fi first #define se second #define pb push_back #define ALL(a) (a).begin(), (a).end() #define task "kbsiudthw" typedef vector<int> vi; typedef pair<int, int> ii; typedef pair<int, ii> pii; const int N = 1e5 + 5; const int INF = 0x3f3f3f3f; const int MOD = 1e9 + 2277; int n; pii a[N]; vi calculate_costs(vector<int32_t> W, vector<int32_t> A, vector<int32_t> B, vector<int32_t> E){ n = W.size(); FOR (i, 1, n){ a[i] = {W[i-1], {A[i-1], B[i-1]}}; } vi ans; sort(a + 1, a + n + 1); FOR (j, 0, (int)E.size() - 1){ vector<int> dp(n + 2, 1e18); dp[0] = 0; dp[1] = a[1].se.fi; FOR (i, 2, n){ dp[i] = dp[i-1] + a[i].se.fi; if (i >= 2 && a[i].fi - a[i-1].fi <= E[j]) dp[i] = min(dp[i], dp[i-2] + a[i].se.se + a[i-1].se.se); if (i >= 3 && a[i].fi - a[i-2].fi <= E[j]) dp[i] = min(dp[i], dp[i-3] + a[i].se.se + a[i-1].se.fi + a[i-2].se.se); } ans.pb(dp[n]); } return ans; } // signed main(){ // ios_base::sync_with_stdio(0); // cin.tie(0); cout.tie(0); // if (fopen(task".inp", "r")){ // freopen(task".inp", "r", stdin); // freopen(task".out", "w", stdout); // } // vi ans = calculate_costs({15, 12, 2, 10, 21}, {5, 4, 5, 6, 3}, {1, 2, 2, 3, 2}, {5, 9, 1}); // for (int &x : ans) cout << x << '\n'; // return 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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...