제출 #1247485

#제출 시각아이디문제언어결과실행 시간메모리
1247485fskarica메기 농장 (IOI22_fish)C++20
0 / 100
17 ms10568 KiB
#include "fish.h" #include <bits/stdc++.h> using namespace std; //#define int long long #define ll long long #define fi first #define se second #define pii pair<int, int> const int MAX = 3000010; int n, m; vector <int> vx, vy, w; ll dp[MAX][5][2]; int mat[MAX][5]; ll max_weights(int N, int M, vector<int> X, vector<int> Y, vector<int> W) { n = N, m = M, vx = X, vy = Y, w = W; for (int i = 0; i < m; i++) { vx[i]++; vy[i]++; mat[vx[i]][vy[i]] += w[i]; } for (int i = 2; i <= n; i++) { for (int j = 0; j <= 1; j++) dp[i][j][0] = max(dp[i - 1][j][0], dp[i - 1][j][1]); for (int j = 0; j <= 1; j++) dp[i][j][1] = max(dp[i - 1][j][0], dp[i - 1][j][1]); ll maxx = 0; for (int j = 1; j >= 0; j--) { maxx = max(maxx, max(dp[i - 1][j][0], dp[i - 1][j][1])); dp[i][j][0] = max(dp[i][j][0], maxx); maxx += mat[i][j]; } maxx = 0; for (int j = 0; j <= 1; j++) { maxx += mat[i - 1][j]; maxx = max(maxx, dp[i - 1][j][1]); dp[i][j][1] = max(dp[i][j][1], maxx); } for (int j = 0; j <= 1; j++) dp[i][j][0] = max(dp[i][j][0], dp[i][j][1]); } ll ret = 0; for (int i = 0; i <= n; i++) ret = max(ret, max(dp[n][i][0], dp[n][i][1])); return ret; }
#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...