Submission #763859

#TimeUsernameProblemLanguageResultExecution timeMemory
763859OrazBCatfish Farm (IOI22_fish)C++17
0 / 100
1106 ms1311560 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> #include <functional> using namespace __gnu_pbds; using namespace std; typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set; //Dijkstra->set //set.find_by_order(x) x-position value //set.order_of_key(x) number of strictly less elements don't need *set.?? #define N 100005 #define wr cout << "Continue debugging\n"; #define all(x) (x).begin(), (x).end() #define ll long long int #define pii pair <ll, int> #define pb push_back #define ff first #define ss second ll max_weights(int n, int m, vector<int> x, vector<int> y, vector<int> w){ int nn = *max_element(all(y)); vector<vector<ll>> a(n+1, vector<ll> (nn+1, 0)); bool sub1 = 0, sub2 = 0; ll sum = 0; for (int i = 0; i < m; i++){ a[x[i]+1][y[i]+1] = w[i]; if (x[i]%2) sub1 = 1; if (x[i] > 1) sub2 = 1; sum += w[i]; } if (!sub1) return sum; for (int i = 1; i <= n; i++){ for (int j = 1; j <= nn; j++){ a[i][j] += a[i][j-1]; } } if (!sub2) return max(a[1][nn], a[2][nn]); vector<vector<vector<ll>>> dp(n+1, vector<vector<ll>>(nn+1, vector<ll>(nn+1, 0))); for (int j = 0; j <= nn; j++){ for (int k = 0; k <= nn; k++){ if (k <= j) dp[2][j][k] = a[1][j]-a[1][k]; else dp[2][j][k] = a[2][k]-a[2][j]; } } ll ans = 0; for (int i = 3; i <= n; i++){ for (int j = 0; j <= nn; j++){ for (int k = 0; k <= nn; k++){ if (k <= j){ for (int z = 0; z <= nn; z++){ ll x = max(0ll, a[i-1][j]-a[i-1][max(z,k)]); dp[i][j][k] = max(dp[i][j][k], x+dp[i-1][k][z]); } }else{ ll mx = 0; for (int z = 0; z <= nn; z++) mx = max(mx, dp[i-1][k][z]); dp[i][j][k] = max(dp[i][j][k], mx+a[i][k]-a[i][j]); } if (i == n) ans = max(ans, dp[i][j][k]); } } } return ans; } // int main () // { // int n, m; // cin >> n >> m; // vector<int> x(m), y(m), w(m); // for (int i = 0; i < m; i++) cin >> x[i] >> y[i] >> w[i]; // cout << max_weights(n,m,x,y,w); // }
#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...