| Task: | Mascot Song |
| Sender: | intoo |
| Submission time: | 2018-07-23 16:23:49 +0300 |
| Language: | C++ |
| Status: | READY |
| Result: | 100 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 30 |
| #2 | ACCEPTED | 30 |
| #3 | ACCEPTED | 40 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.01 s | 1 | details |
| #2 | ACCEPTED | 0.01 s | 1 | details |
| #3 | ACCEPTED | 0.02 s | 1 | details |
| #4 | ACCEPTED | 0.25 s | 2 | details |
| #5 | ACCEPTED | 0.28 s | 2 | details |
| #6 | ACCEPTED | 0.24 s | 2 | details |
| #7 | ACCEPTED | 0.11 s | 3 | details |
| #8 | ACCEPTED | 0.40 s | 3 | details |
| #9 | ACCEPTED | 0.41 s | 3 | details |
| #10 | ACCEPTED | 0.44 s | 3 | details |
Code
#include <iostream>
using namespace std;
int A[404040];
int main() {
int n, q, a, k, x, y;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> a;
A[i] = a;
A[i+n] = a;
}
int B = 0;
for (int i = 0; i < n; i++) {
if (i == 0 || A[i] <= A[i-1]) B++;
}
cin >> q;
int t = 0;
for (int i = 0; i < q; i++) {
cin >> k;
if (k-1) {
cin >> x;
if (A[t] > A[t+n-1]) B--;
t = (t+x)%n;
if (A[t] > A[t+n-1]) B++;
} else {
cin >> x >> y;
x += t;
int l, r;
if (x > t+1) l = A[x-2] >= A[x-1];
if (x < n+t) r = A[x-1] >= A[x];
A[(x-1+n)%(2*n)] = y;
A[x-1] = y;
if (x > t+1) B += (int)(A[x-2] >= A[x-1]) - l;
if (x < n+t) B += (int)(A[x-1] >= A[x]) - r;
}
// for (int i = t; i < n+t; i++) {
// cout << A[i] << ' ';
// } cout << endl << "\t";
cout << B << "\n";
}
}
Test details
Test 1
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 10
4 5 6 1 10 20 15 16 17 1 13 1 10 2 2 9 ... |
| correct output |
|---|
| 4
3 4 4 4 ... |
| user output |
|---|
| 4 3 4 4 4 ... |
Test 2
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 30
18 48 48 7 60 21 11 49 14 10 1... |
| correct output |
|---|
| 16
17 17 17 16 ... |
| user output |
|---|
| 16 17 17 17 16 ... |
Test 3
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 100
11 16 18 16 14 7 6 1 22 8 19 5... |
| correct output |
|---|
| 50
50 50 50 49 ... |
| user output |
|---|
| 50 50 50 50 49 ... |
Test 4
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 80000
581256238 412911089 468450337 ... |
| correct output |
|---|
| 39831
39830 39830 39830 39831 ... |
| user output |
|---|
| 39831 39830 39830 39830 39831 ... |
Test 5
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 150000
2013 2014 2014 2014 2014 2014 ... |
| correct output |
|---|
| 150000
149999 149998 149997 149996 ... |
| user output |
|---|
| 150000 149999 149998 149997 149996 ... |
Test 6
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 190000
62 4981 98 3407 7210 6339 1348... |
| correct output |
|---|
| 94991
94991 94991 94992 94992 ... |
| user output |
|---|
| 94991 94991 94991 94992 94992 ... |
Test 7
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 50000
446 494 191 356 886 78 470 223... |
| correct output |
|---|
| 24959
24959 24960 24960 24960 ... |
| user output |
|---|
| 24959 24959 24960 24960 24960 ... |
Test 8
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 170333
1 1001 2001 3001 4001 5001 600... |
| correct output |
|---|
| 2
3 3 3 4 ... |
| user output |
|---|
| 2 3 3 3 4 ... |
Test 9
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 200000
571574128 419362929 843317486 ... |
| correct output |
|---|
| 100061
100061 100061 100060 100060 ... |
| user output |
|---|
| 100061 100061 100061 100060 100060 ... |
Test 10
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 200000
262656227 860259516 849559109 ... |
| correct output |
|---|
| 99946
99946 99947 99947 99947 ... |
| user output |
|---|
| 99946 99946 99947 99947 99947 ... |
