이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "fish.h"
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define mp make_pair
#define nL '\n'
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
typedef long long ll;
typedef long double ld;
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef pair<int, int> pii;
typedef vector<pii> vpii;
typedef vector<ll> vl;
typedef vector<vl> vvl;
typedef pair<ll, ll> pll;
typedef vector<pll> vpll;
int ipow(int a, int n) {
if (n == 0) return 1;
int x = ipow(a, n/2);
if (n % 2 == 0) return x*x;
return x*x*a;
}
template <typename T>
ostream& operator<<(ostream& stream, const vector<T>& v) {
for (auto elem : v)
stream << elem << " ";
return stream;
}
template <typename T>
istream& operator>>(istream& stream, vector<T>& v){
for(auto &elem : v)
stream >> elem;
return stream;
}
long long max_weights(int N, int M, vi X, vi Y,
vi W) {
ll maxY = 0;
for (int i = 0; i < M; i++) maxY = max(maxY, (ll)Y[i]);
maxY++;
vvl mat(N, vl(maxY+1));
for (int i = 0; i < M; i++) mat[X[i]][Y[i]] = W[i];
vector<vvl> dp(N, vvl(maxY+1, vl(maxY+1)));
ll _tmp1 = 0;
for (int j = 0; j <= maxY; j++) {
if (j > 0) _tmp1 += mat[0][j-1];
ll _tmp2 = 0;
for (int k = 0; k <= maxY; k++) {
if (k <= j) {
if (k > 0) _tmp2 -= mat[0][k-1];
} else {
if (k > 0) _tmp2 += mat[1][k-1];
}
dp[1][j][k] = _tmp1+_tmp2;
// cout << j << " " << k << " " << _tmp1+_tmp2 << nL;
}
}
for (int i = 2; i < N; i++) {
ll tmp1 = 0;
for (int j = 0; j <= maxY; j++) {
if (j > 0) tmp1 += mat[i-1][j-1];
ll tmp2 = 0;
for (int k = 0; k <= maxY; k++) {
if (k <= j) {
if (k > 0) tmp2 -= mat[i-1][k-1];
} else {
if (k > 0) tmp2 += mat[i][k-1];
}
ll tmp3 = 0;
for (int l = 0; l <= maxY;l++) {
if (l > k && l <= j) {
if (l > 0) tmp3 -= mat[i-1][l-1];
}
dp[i][j][k] = max(dp[i][j][k], dp[i-1][k][l]+tmp1+tmp2+tmp3);
}
}
}
}
long long res = 0;
for (int i = 0; i <= maxY; i++) {
for (int j = 0; j <= maxY; j++)
res = max(res, dp[N-1][i][j]);
}
return res;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |