Submission #990383

#TimeUsernameProblemLanguageResultExecution timeMemory
990383hariaakas646Catfish Farm (IOI22_fish)C++17
35 / 100
1105 ms2097152 KiB
#include "fish.h" #include <bits/stdc++.h> using namespace std; #define scd(t) scanf("%d", &t) #define sclld(t) scanf("%lld", &t) #define forr(i, j, k) for (int i = j; i < k; i++) #define frange(i, j) forr(i, 0, j) #define all(cont) cont.begin(), cont.end() #define mp make_pair #define pb push_back #define f first #define s second typedef long long int lli; typedef pair<int, int> pii; typedef vector<int> vi; typedef vector<bool> vb; typedef vector<lli> vll; typedef vector<string> vs; typedef vector<pii> vii; typedef vector<vi> vvi; typedef map<int, int> mpii; typedef set<int> seti; typedef multiset<int> mseti; typedef long double ld; int n, m; long long max_weights(int N, int M, std::vector<int> X, std::vector<int> Y, std::vector<int> W) { n = N; m = M; vector<vll> grid(n, vll(n+1)); frange(i, m) { grid[X[i]][Y[i]+1] = W[i]; } vector<vll> dp1(n, vll(n+1)), dp2(n, vll(n+1)); forr(i, 1, n+1) { dp2[0][i] = grid[0][i]; dp2[0][i] += dp2[0][i-1]; } forr(i, 1, n) { frange(j, n+1) { dp1[i][j] = dp2[i-1][j]; lli v = 0; forr(k, j+1, n+1) { v += grid[i][k]; dp1[i][j] = max(dp1[i][j], dp1[i-1][k] + v); } v = 0; for(int k=j; k>=0; k--) { dp2[i][j] = max(dp2[i][j], dp2[i-1][k] + v); v += grid[i][k]; } frange(k, n+1) { dp2[i][j] = max(dp2[i][j], dp1[i-1][k] + v); } } } return *max_element(all(dp1[n-1])); }
#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...