Submission details
Task:Lisäykset
Sender:Yytsi
Submission time:2025-11-29 21:49:32 +0200
Language:C++ (C++20)
Status:READY
Result:100
Feedback
groupverdictscore
#1ACCEPTED20
#2ACCEPTED33
#3ACCEPTED47
Test results
testverdicttimegroup
#1ACCEPTED0.00 s1, 2, 3details
#2ACCEPTED0.00 s1, 2, 3details
#3ACCEPTED0.00 s1, 3details
#4ACCEPTED0.00 s1, 3details
#5ACCEPTED0.00 s1, 3details
#6ACCEPTED0.11 s2, 3details
#7ACCEPTED0.11 s3details
#8ACCEPTED0.11 s3details
#9ACCEPTED0.12 s3details
#10ACCEPTED0.11 s3details
#11ACCEPTED0.11 s3details

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:25:38: warning: suggest parentheses around comparison in operand of '^' [-Wparentheses]
   25 |     for (int j = 0; j < 4; j++) d(g[2<j^j] - (k - g[1] + 1) * (4%~j), (1^j)-j);
      |                                     ~^~

Code

#include <bits/stdc++.h>
using namespace std;

#define N 101010
int n, m, fen[N];

int main() {
  ios_base::sync_with_stdio(0); cin.tie(0); cin>>n>>m;
  auto d = [&](int k, int x) { for (; k <= N; fen[k] += x, k += k & -k); };
  auto f = [&](int k, int s = 0) { for (; k >= 1; s += fen[k], k -= k & -k); return s; };
  auto b = [&](int l, int r, int t, int g) {
    while (l < r) {
      int mid = l + (r - l) / 2;
      if ((f(mid) == t) ^ g) r = mid;
      else l = mid + 1;
    }
    return l;
  };

  for (int i = 1, x = 0, p = 0; i <= n; i++, p = x) cin>>x, d(i, x-p), p = x;
  for (int q = 0, k = 0; q < m; q++) {
    cin>>k;
    int e = f(k);
    int g[3] = {1, b(1, k+1, e, 0), b(k, n+1, e, 1)};
    for (int j = 0; j < 4; j++) d(g[2<j^j] - (k - g[1] + 1) * (4%~j), (1^j)-j);
  }

  for (int i = 1; i <= n; i++) cout << f(i) << " ";
}

Test details

Test 1

Group: 1, 2, 3

Verdict: ACCEPTED

input
1 1000
0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
1000 

user output
1000 

Test 2

Group: 1, 2, 3

Verdict: ACCEPTED

input
1000 1000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

correct output
511 511 511 511 511 511 511 51...

user output
511 511 511 511 511 511 511 51...

Test 3

Group: 1, 3

Verdict: ACCEPTED

input
1000 1000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

correct output
495 495 495 495 495 495 495 49...

user output
495 495 495 495 495 495 495 49...

Test 4

Group: 1, 3

Verdict: ACCEPTED

input
1000 1000
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 ...

correct output
562 562 562 562 562 562 562 56...

user output
562 562 562 562 562 562 562 56...

Test 5

Group: 1, 3

Verdict: ACCEPTED

input
1000 1000
0 1 3 4 6 9 9 9 10 11 11 11 11...

correct output
997 997 997 997 997 998 998 99...

user output
997 997 997 997 997 998 998 99...

Test 6

Group: 2, 3

Verdict: ACCEPTED

input
100000 100000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

correct output
50033 50033 50033 50033 50033 ...

user output
50033 50033 50033 50033 50033 ...

Test 7

Group: 3

Verdict: ACCEPTED

input
100000 100000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

correct output
49996 49996 49996 49996 49996 ...

user output
49996 49996 49996 49996 49996 ...

Test 8

Group: 3

Verdict: ACCEPTED

input
100000 100000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

correct output
50057 50057 50057 50057 50057 ...

user output
50057 50057 50057 50057 50057 ...

Test 9

Group: 3

Verdict: ACCEPTED

input
100000 100000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

correct output
50536 50536 50536 50536 50536 ...

user output
50536 50536 50536 50536 50536 ...

Test 10

Group: 3

Verdict: ACCEPTED

input
100000 100000
0 4 7 29 33 44 52 75 77 79 82 ...

correct output
100000 100001 100003 100023 10...

user output
100000 100001 100003 100023 10...

Test 11

Group: 3

Verdict: ACCEPTED

input
100000 100000
1 12 14 16 49 59 59 63 68 73 8...

correct output
100001 100010 100012 100014 10...

user output
100001 100010 100012 100014 10...