Submission #747881

#TimeUsernameProblemLanguageResultExecution timeMemory
747881inventiontimeCatfish Farm (IOI22_fish)C++17
0 / 100
888 ms155372 KiB
#include "fish.h" #include <bits/stdc++.h> using namespace std; #define pb push_back #define re resize #define ff first #define ss second #define all(x) (x).begin(), (x).end() #define all1(x) (x).begin()+1, (x).end() #define loop(i, n) for(int i = 0; i < n; i++) #define loop1(i, n) for(int i = 1; i <= n; i++) #define print(x) cout << #x << ": " << x << endl << flush template<class T> bool ckmin(T&a, T b) { bool B = a > b; a = min(a, b); return B; } template<class T> bool ckmax(T&a, T b) { bool B = a < b; a = max(a, b); return B; } typedef long long ll; typedef vector<int> vi; const ll inf = 1e17; const ll maxn = 3005; ll fish[maxn][maxn]; ll pref[maxn][maxn]; ll dpi[maxn][maxn]; ll dpd[maxn][maxn]; ll max_weights(int n, int m, vi x, vi y, vi w) { loop(i, m) { x[i]++; y[i]++; fish[x[i]][y[i]] = w[i]; } loop1(i, n) loop1(j, n) pref[i][j] = pref[i][j-1] + fish[i][j]; loop(i, n+2) dpi[0][i] = -inf; loop(i, n+2) dpd[0][i] = -inf; dpd[0][0] = 0; loop1(i, n) { loop1(j, n) { if(i >= 2) loop(k, n+1) ckmax(dpi[i][j], dpd[i-2][k] + pref[i-1][max(j, k)] - pref[i-1][0]); loop1(k, n) if(k <= j) ckmax(dpi[i][j], dpi[i-1][k] + pref[i-1][j] - pref[i-1][k]); } loop(j, n+1) { ckmax(dpd[i][j], dpi[i-1][n] + pref[i][n] - pref[i][j]); loop(k, n+1) if(k >= j) ckmax(dpd[i][j], dpd[i-1][k] + pref[i][k] - pref[i][j]); } } // cout << endl; // loop1(j, n) { // loop1(i, n) cout << fish[i][j] << " "; // cout << endl; // } // cout << endl; // loop1(j, n) { // loop1(i, n) cout << dpi[i][j] << " "; // cout << endl; // } // cout << endl; // loop1(j, n) { // loop1(i, n) cout << dpd[i][j] << " "; // cout << endl; // } // cout << endl; return max(dpd[n][0], dpi[n][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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...