이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <cstdio>
#include <cstring>
#include <cassert>
#include <string>
#include <deque>
#include <vector>
#include <map>
#include <queue>
#include <algorithm>
#include <iostream>
#include <utility>
#include <numeric>
using namespace std;
using ll=long long;
#define N 200005
#define ALL(x) x.begin(), x.end()
int n, m, *x, *y, *w;
long long max_weights(int n_, int m_, vector<int> x_, vector<int> y_, vector<int> w_)
{
x = x_.data();
y = y_.data();
w = w_.data();
n = n_, m = m_;
if (count_if(x, x+m, [](int x){ return x%2; }) == 0) return accumulate(w, w+m, 0ll);
if (*max_element(x, x+m) <= 1)
{
vector<vector<ll>> pf(2, vector<ll>(n+1));
for (int i = 0; i < m; ++i) pf[x[i]][y[i]] += w[i];
for (int i = 0; i < 2; ++i)
for (int j = 1; j < n; ++j)
pf[i][j] += pf[i][j-1];
ll z = max(pf[0][n-1], pf[1][n-1]);
if (n > 2)
{
for (int j = 0; j < n; ++j)
z = max(z, pf[0][j] + pf[1][n-1] - pf[1][j]);
}
return z;
}
if (*max_element(y, y+m) == 0)
{
vector<ll> byx(n);
for (int i = 0; i < m; ++i) byx[x[i]] += w[i];
vector<vector<ll>> dp(n+2, vector<ll>(3));
dp[0][0] = 0; dp[0][1] = byx[0]; dp[1][0] = dp[0][1]; dp[1][1] = byx[1]; dp[1][2] = byx[1];
for (int i = 2; i < n; ++i)
{
dp[i][0] = max({dp[i-1][2], dp[i-1][1], dp[i-1][0]});
dp[i][1] = dp[i-1][0] + byx[i];
dp[i][2] = dp[i-1][1] + byx[i];
}
return max(dp[n-1][0], dp[n-1][1]);
}
if (N <= 300 && *max_element(y, y+m) <= 8)
{
}
return 0;
}
# | 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... |