Task: | Zigzag |
Sender: | OOliOO_slayer |
Submission time: | 2015-09-16 18:33:23 +0300 |
Language: | C++ |
Status: | READY |
Result: | WRONG ANSWER |
test | verdict | time | |
---|---|---|---|
#1 | WRONG ANSWER | 0.05 s | details |
#2 | WRONG ANSWER | 0.06 s | details |
#3 | WRONG ANSWER | 0.06 s | details |
#4 | WRONG ANSWER | 0.05 s | details |
#5 | WRONG ANSWER | 0.05 s | details |
#6 | WRONG ANSWER | 0.06 s | details |
#7 | WRONG ANSWER | 0.05 s | details |
#8 | WRONG ANSWER | 0.06 s | details |
#9 | WRONG ANSWER | 0.06 s | details |
#10 | WRONG ANSWER | 0.06 s | details |
#11 | WRONG ANSWER | 0.06 s | details |
#12 | WRONG ANSWER | 0.05 s | details |
#13 | WRONG ANSWER | 0.06 s | details |
#14 | WRONG ANSWER | 0.07 s | details |
#15 | WRONG ANSWER | 0.06 s | details |
#16 | WRONG ANSWER | 0.05 s | details |
#17 | WRONG ANSWER | 0.07 s | details |
#18 | WRONG ANSWER | 0.06 s | details |
#19 | WRONG ANSWER | 0.06 s | details |
#20 | WRONG ANSWER | 0.06 s | details |
#21 | WRONG ANSWER | 0.06 s | details |
#22 | WRONG ANSWER | 0.06 s | details |
#23 | ACCEPTED | 0.06 s | details |
Code
#include <iostream> #include <vector> #include <algorithm> #include <string> #include <map> #include <utility> #include <set> typedef long long LL; using namespace std; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); int n; cin >> n; vector<int> v; for(int i = 0; i < n; i++){ int x; cin >> x; v.push_back(x); } vector<int> up(n), down(n), psv(n), pgv(n); up[0] = 1; down[0] = 1; psv[0] = -1; pgv[0] = -1; for(int i = 1; i < n; i++){ if(v[i] == v[i-1]){ up[i] = up[i-1]; down[i] = down[i-1]; psv[i] = psv[i-1]; pgv[i] = pgv[i-1]; continue; } else if(v[i] > v[i-1]){ // Increasing psv[i] = i-1; int prev = pgv[i-1]; // Search for prev greater while(prev != -1 && v[prev] <= v[i]){ prev = pgv[prev]; } pgv[i] = prev; } else if(v[i] < v[i-1]){ // Decreasing pgv[i] = i-1; int prev = psv[i-1]; while(prev != -1 && v[prev] >= v[i]){ prev = psv[prev]; } psv[i] = prev; } up[i] = psv[i] == -1 ? 1 : down[psv[i]] + 1; down[i] = pgv[i] == -1 ? 1 : up[pgv[i]] + 1; } /*for(auto x : psv) cout << x << " "; cout << endl; for(auto x : pgv) cout << x << " "; cout << endl; for(auto x : up) cout << x << " "; cout << endl; for(auto x : down) cout << x << " "; cout << endl;*/ int ans = 0; for(int i = 0; i < n; i++){ ans = max(ans,up[i]); ans = max(ans,down[i]); } cout << ans << endl; }
Test details
Test 1
Verdict: WRONG ANSWER
input |
---|
26914
209563339 493138663 352519700 ... |
correct output |
---|
17861 |
user output |
---|
13289 |
Test 2
Verdict: WRONG ANSWER
input |
---|
69623
448426297 297876050 307483466 ... |
correct output |
---|
46402 |
user output |
---|
34535 |
Test 3
Verdict: WRONG ANSWER
input |
---|
74436
633012861 731816315 697620472 ... |
correct output |
---|
49602 |
user output |
---|
37247 |
Test 4
Verdict: WRONG ANSWER
input |
---|
40279
561990353 513856090 901866509 ... |
correct output |
---|
26955 |
user output |
---|
20406 |
Test 5
Verdict: WRONG ANSWER
input |
---|
51496
683270487 631068160 190804676 ... |
correct output |
---|
34326 |
user output |
---|
25372 |
Test 6
Verdict: WRONG ANSWER
input |
---|
97124
1000007 1000006 1000003 100000... |
correct output |
---|
61495 |
user output |
---|
48379 |
Test 7
Verdict: WRONG ANSWER
input |
---|
91945
1000005 1000005 1000006 100000... |
correct output |
---|
58521 |
user output |
---|
46551 |
Test 8
Verdict: WRONG ANSWER
input |
---|
96629
1000004 1000010 1000003 100001... |
correct output |
---|
61327 |
user output |
---|
48863 |
Test 9
Verdict: WRONG ANSWER
input |
---|
92161
1000042 1000001 1000055 100001... |
correct output |
---|
60962 |
user output |
---|
45481 |
Test 10
Verdict: WRONG ANSWER
input |
---|
96806
1000057 1000002 1000011 100006... |
correct output |
---|
64127 |
user output |
---|
48040 |
Test 11
Verdict: WRONG ANSWER
input |
---|
99118
1000084 1000083 1000002 100008... |
correct output |
---|
66012 |
user output |
---|
49528 |
Test 12
Verdict: WRONG ANSWER
input |
---|
98412
1000959 1000993 1000257 100064... |
correct output |
---|
65720 |
user output |
---|
48724 |
Test 13
Verdict: WRONG ANSWER
input |
---|
90443
1000341 1000111 1000853 100021... |
correct output |
---|
60148 |
user output |
---|
45264 |
Test 14
Verdict: WRONG ANSWER
input |
---|
94265
1000087 1000461 1000534 100020... |
correct output |
---|
62824 |
user output |
---|
47798 |
Test 15
Verdict: WRONG ANSWER
input |
---|
91433
1001939 1009857 1000325 100505... |
correct output |
---|
60938 |
user output |
---|
46072 |
Test 16
Verdict: WRONG ANSWER
input |
---|
96457
1005466 1001970 1000639 100288... |
correct output |
---|
64111 |
user output |
---|
48305 |
Test 17
Verdict: WRONG ANSWER
input |
---|
91928
1003162 1008129 1007967 100683... |
correct output |
---|
61129 |
user output |
---|
46089 |
Test 18
Verdict: WRONG ANSWER
input |
---|
96494
1076481 1008804 1047323 102583... |
correct output |
---|
64214 |
user output |
---|
48214 |
Test 19
Verdict: WRONG ANSWER
input |
---|
98136
1025253 1017437 1050227 105377... |
correct output |
---|
65345 |
user output |
---|
48434 |
Test 20
Verdict: WRONG ANSWER
input |
---|
90294
1098032 1037085 1089672 105311... |
correct output |
---|
60164 |
user output |
---|
45180 |
Test 21
Verdict: WRONG ANSWER
input |
---|
100000
19836 85811 67650 86807 50191 ... |
correct output |
---|
66639 |
user output |
---|
50299 |
Test 22
Verdict: WRONG ANSWER
input |
---|
100000
999999998 999999999 999999996 ... |
correct output |
---|
59975 |
user output |
---|
50437 |
Test 23
Verdict: ACCEPTED
input |
---|
11
1000000000 1000000000 10000000... |
correct output |
---|
4 |
user output |
---|
4 |