提出 #50249480
ソースコード 拡げる
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 2e6 + 10;
ll tree[4 * N], lazy[4 * N], a[N], b[N];
void build(int node, int st, int nd) {
if (st == nd) {
tree[node] = a[st];
return ;
}
int mid = (st + nd) / 2;
build(2 * node, st, mid);
build(2 * node + 1, mid + 1, nd);
tree[node] = tree[2 * node] + tree[2 * node + 1];
}
ll query(int node, int st, int nd, int l, int r) {
if (lazy[node] != 0) {
tree[node] += (nd - st + 1) * lazy[node];
lazy[2 * node] += lazy[node];
lazy[2 * node + 1] += lazy[node];
}
lazy[node] = 0;
if (st > r || nd < l) return 0;
if (l <= st && nd <= r) return tree[node];
int mid = (st + nd) / 2;
ll q1 = query(2 * node, st, mid, l, r);
ll q2 = query(2 * node + 1, mid + 1, nd, l, r);
return q1 + q2;
}
void update(int node, int st, int nd, int l, int r, ll val) {
if (lazy[node] != 0) {
tree[node] += (nd - st + 1) * lazy[node];
lazy[2 * node] += lazy[node];
lazy[2 * node + 1] += lazy[node];
}
lazy[node] = 0;
if (st > r || nd < l) return ;
if (l <= st && nd <= r) {
tree[node] += (nd - st + 1) * val;
if (st != nd) {
lazy[2 * node] += val;
lazy[2 * node + 1] += val;
}
return ;
}
int mid = (st + nd) / 2;
update(2 * node, st, mid, l, r, val);
update(2 * node + 1, mid + 1, nd, l, r, val);
tree[node] = tree[2 * node] + tree[2 * node + 1];
}
int main() {
int n, m;
cin >> n >> m;
for (int i = 0; i < n; ++i) {
cin >> a[i];
}
for (int i = 0; i < m; ++i) {
cin >> b[i];
}
build(1, 0, n - 1);
for (int i = 0; i < m; ++i) {
ll x = query(1, 0, n - 1, b[i], b[i]);
update(1, 0, n - 1, b[i], b[i], -x);
update(1, 0, n - 1, 0, n - 1, x / n);
if (x % n) {
ll l = (b[i] + 1) % n, r = (l + (x % n) - 1 + n) % n;
if (l <= r) {
update(1, 0, n - 1, l, r, 1);
}
else {
update(1, 0, n - 1, l, n - 1, 1);
update(1, 0, n - 1, 0, r, 1);
}
}
}
for (int i = 0; i < n; ++i) {
cout << query(1, 0, n - 1, i, i) << " ";
}
cout << endl;
}
提出情報
| 提出日時 |
|
| 問題 |
E - Mancala 2 |
| ユーザ |
adaptatron |
| 言語 |
C++ 20 (gcc 12.2) |
| 得点 |
475 |
| コード長 |
2130 Byte |
| 結果 |
AC |
| 実行時間 |
302 ms |
| メモリ |
19016 KiB |
ジャッジ結果
| セット名 |
Sample |
All |
| 得点 / 配点 |
0 / 0 |
475 / 475 |
| 結果 |
|
|
| セット名 |
テストケース |
| Sample |
sample_01.txt, sample_02.txt, sample_03.txt |
| All |
random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, random_20.txt, random_21.txt, random_22.txt, random_23.txt, random_24.txt, random_25.txt, random_26.txt, random_27.txt, random_28.txt, random_29.txt, random_30.txt, random_31.txt, random_32.txt, sample_01.txt, sample_02.txt, sample_03.txt |
| ケース名 |
結果 |
実行時間 |
メモリ |
| random_01.txt |
AC |
50 ms |
5076 KiB |
| random_02.txt |
AC |
95 ms |
5044 KiB |
| random_03.txt |
AC |
58 ms |
4416 KiB |
| random_04.txt |
AC |
3 ms |
3508 KiB |
| random_05.txt |
AC |
86 ms |
5028 KiB |
| random_06.txt |
AC |
99 ms |
5052 KiB |
| random_07.txt |
AC |
37 ms |
4520 KiB |
| random_08.txt |
AC |
31 ms |
4004 KiB |
| random_09.txt |
AC |
101 ms |
5048 KiB |
| random_10.txt |
AC |
87 ms |
5032 KiB |
| random_11.txt |
AC |
49 ms |
4540 KiB |
| random_12.txt |
AC |
11 ms |
3660 KiB |
| random_13.txt |
AC |
299 ms |
18872 KiB |
| random_14.txt |
AC |
225 ms |
11848 KiB |
| random_15.txt |
AC |
175 ms |
18116 KiB |
| random_16.txt |
AC |
120 ms |
5560 KiB |
| random_17.txt |
AC |
300 ms |
19016 KiB |
| random_18.txt |
AC |
273 ms |
18524 KiB |
| random_19.txt |
AC |
195 ms |
18084 KiB |
| random_20.txt |
AC |
239 ms |
12016 KiB |
| random_21.txt |
AC |
302 ms |
18868 KiB |
| random_22.txt |
AC |
276 ms |
18644 KiB |
| random_23.txt |
AC |
212 ms |
18156 KiB |
| random_24.txt |
AC |
230 ms |
18280 KiB |
| random_25.txt |
AC |
1 ms |
3496 KiB |
| random_26.txt |
AC |
1 ms |
3496 KiB |
| random_27.txt |
AC |
268 ms |
18932 KiB |
| random_28.txt |
AC |
141 ms |
6728 KiB |
| random_29.txt |
AC |
203 ms |
12116 KiB |
| random_30.txt |
AC |
100 ms |
5256 KiB |
| random_31.txt |
AC |
95 ms |
5096 KiB |
| random_32.txt |
AC |
95 ms |
5072 KiB |
| sample_01.txt |
AC |
1 ms |
3384 KiB |
| sample_02.txt |
AC |
1 ms |
3560 KiB |
| sample_03.txt |
AC |
1 ms |
3464 KiB |