提出 #33832428
ソースコード 拡げる
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int MAXn = 16;
const int MAXpower2_n = 65536;
template <typename T>
inline void read(T &a) {
char c;for (c = getchar(); (c < '0' || c > '9') && c != '-'; c = getchar());bool f = c == '-';T x = f ? 0 : (c ^ '0');for (c = getchar(); c >= '0' && c <= '9'; c = getchar()) {x = x * 10 + (c ^ '0');}a = f ? -x : x;
}
template <typename T, typename ...Argv>
inline void read(T &a, Argv &...argv) {
read(a), read(argv...);
}
int n, power2n;
int a[MAXpower2_n + 10][MAXn + 10];
#define ls (id << 1)
#define rs (id << 1 | 1)
const int MAXnd = MAXpower2_n * 4;
int le[MAXnd + 10], ri[MAXnd + 10], len[MAXnd + 10], mid[MAXnd + 10];
vector<int> d[MAXnd + 10]; int mxd[MAXnd + 10];
void build(int id, int l, int r, int lay) {
le[id] = l;
ri[id] = r;
mid[id] = (l + r) >> 1;
len[id] = r - l + 1;
d[id].resize(len[id]);
if (le[id] == ri[id]) {
d[id][0] = 0;
mxd[id] = 0;
} else {
build(ls, le[id], mid[id], lay - 1);
build(rs, mid[id] + 1, ri[id], lay - 1);
for (int i = 0, I = 0; i < len[ls]; ++i, ++I) {
d[id][I] = d[ls][i] + mxd[rs] + (a[le[id] + I][lay] - a[le[id] + I][lay - 1]);
mxd[id] = max(mxd[id], d[id][I]);
}
for (int i = 0, I = mid[id] - le[id] + 1; i < len[rs]; ++i, ++I) {
d[id][I] = d[rs][i] + mxd[ls] + (a[le[id] + I][lay] - a[le[id] + I][lay - 1]);
mxd[id] = max(mxd[id], d[id][I]);
}
}
}
signed main() {
read(n);
power2n = 1;
for (int i = 1; i <= n; ++i) power2n *= 2;
for (int i = 1; i <= power2n; ++i) {
for (int j = 1; j <= n; ++j) {
read(a[i][j]);
}
}
build(1, 1, power2n, n);
printf("%lld\n", mxd[1]);
}
提出情報
| 提出日時 |
|
| 問題 |
F - Tournament |
| ユーザ |
rsdbk_husky |
| 言語 |
C++ (GCC 9.2.1) |
| 得点 |
500 |
| コード長 |
1699 Byte |
| 結果 |
AC |
| 実行時間 |
85 ms |
| メモリ |
39104 KiB |
ジャッジ結果
| セット名 |
Sample |
All |
| 得点 / 配点 |
0 / 0 |
500 / 500 |
| 結果 |
|
|
| セット名 |
テストケース |
| Sample |
00_sample_01.txt, 00_sample_02.txt |
| All |
00_sample_01.txt, 00_sample_02.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 02_max_01.txt, 02_max_02.txt, 02_max_03.txt, 02_max_04.txt, 02_max_05.txt, 02_max_06.txt, 02_max_07.txt, 02_max_08.txt, 02_max_09.txt, 02_max_10.txt, 02_max_11.txt, 02_max_12.txt, 02_max_13.txt |
| ケース名 |
結果 |
実行時間 |
メモリ |
| 00_sample_01.txt |
AC |
23 ms |
9760 KiB |
| 00_sample_02.txt |
AC |
11 ms |
9768 KiB |
| 01_random_01.txt |
AC |
10 ms |
9760 KiB |
| 01_random_02.txt |
AC |
8 ms |
9692 KiB |
| 01_random_03.txt |
AC |
82 ms |
39036 KiB |
| 01_random_04.txt |
AC |
10 ms |
9884 KiB |
| 01_random_05.txt |
AC |
9 ms |
9800 KiB |
| 01_random_06.txt |
AC |
81 ms |
39020 KiB |
| 01_random_07.txt |
AC |
9 ms |
9788 KiB |
| 01_random_08.txt |
AC |
85 ms |
39100 KiB |
| 01_random_09.txt |
AC |
80 ms |
39104 KiB |
| 01_random_10.txt |
AC |
12 ms |
9720 KiB |
| 02_max_01.txt |
AC |
82 ms |
38892 KiB |
| 02_max_02.txt |
AC |
81 ms |
38944 KiB |
| 02_max_03.txt |
AC |
84 ms |
39096 KiB |
| 02_max_04.txt |
AC |
84 ms |
39092 KiB |
| 02_max_05.txt |
AC |
77 ms |
39100 KiB |
| 02_max_06.txt |
AC |
81 ms |
39004 KiB |
| 02_max_07.txt |
AC |
82 ms |
39024 KiB |
| 02_max_08.txt |
AC |
83 ms |
39104 KiB |
| 02_max_09.txt |
AC |
82 ms |
38896 KiB |
| 02_max_10.txt |
AC |
83 ms |
39096 KiB |
| 02_max_11.txt |
AC |
84 ms |
38988 KiB |
| 02_max_12.txt |
AC |
81 ms |
38904 KiB |
| 02_max_13.txt |
AC |
81 ms |
38992 KiB |