Task: | Sum |
Sender: | 2xJelly |
Submission time: | 2019-01-18 13:33:07 +0200 |
Language: | C++ |
Status: | READY |
Result: | 0 |
group | verdict | score |
---|---|---|
#1 | WRONG ANSWER | 0 |
test | verdict | time | |
---|---|---|---|
#1 | WRONG ANSWER | 0.03 s | details |
#2 | WRONG ANSWER | 0.02 s | details |
#3 | WRONG ANSWER | 0.02 s | details |
#4 | WRONG ANSWER | 0.04 s | details |
#5 | WRONG ANSWER | 0.03 s | details |
#6 | WRONG ANSWER | 0.02 s | details |
#7 | WRONG ANSWER | 0.02 s | details |
#8 | WRONG ANSWER | 0.01 s | details |
#9 | WRONG ANSWER | 0.02 s | details |
#10 | WRONG ANSWER | 0.02 s | details |
#11 | WRONG ANSWER | 0.04 s | details |
#12 | WRONG ANSWER | 0.01 s | details |
#13 | WRONG ANSWER | 0.04 s | details |
#14 | WRONG ANSWER | 0.02 s | details |
#15 | WRONG ANSWER | 0.03 s | details |
#16 | WRONG ANSWER | 0.04 s | details |
#17 | WRONG ANSWER | 0.02 s | details |
#18 | WRONG ANSWER | 0.03 s | details |
#19 | WRONG ANSWER | 0.02 s | details |
#20 | WRONG ANSWER | 0.03 s | details |
#21 | WRONG ANSWER | 0.02 s | details |
#22 | WRONG ANSWER | 0.02 s | details |
#23 | WRONG ANSWER | 0.02 s | details |
#24 | WRONG ANSWER | 0.02 s | details |
#25 | WRONG ANSWER | 0.02 s | details |
#26 | WRONG ANSWER | 0.03 s | details |
#27 | WRONG ANSWER | 0.02 s | details |
#28 | WRONG ANSWER | 0.02 s | details |
Code
#include <iostream>#include <cmath>#include <algorithm>#include <stack>#include <queue>#include <vector>#include <string>using namespace std;typedef long long LL;const LL MAX = 200005;const LL INF = (1000 * 1000 * 1000) + 50;LL n, q;LL h[MAX] = {}, nxt[MAX] = {};vector<LL> target[MAX] = {};LL b_Search(LL pos, LL x){LL answer = -1;LL lo = 0;LL hi = target[pos].size()-1;while(lo <= hi){LL mid = lo + (hi-lo)/2;if(target[pos][mid] <= x){answer = max(answer, mid);lo = mid+1;}else hi = mid-1;}return answer + 1;}int main(void){cin >> n >> q;for(LL i0 = 0; i0 < n; i0++)cin >> h[i0];stack<pair<LL, LL> > st;st.push(make_pair(0, h[0]));for(LL i0 = 1; i0 < n; i0++){while(!st.empty() && st.top().second < h[i0]){nxt[st.top().first] = i0;st.pop();}st.push(make_pair(i0, h[i0]));}while(!st.empty() ){nxt[st.top().first] = INF;st.pop();}for(LL i0 = 0; i0 < n; i0++){LL cur = i0;LL tempo = 0;while(tempo <= 250){tempo++;LL t = nxt[cur];target[i0].push_back(t);cur = t;if(cur == INF)break;}}for(LL i0 = 0; i0 < q; i0++){LL i, j, ans = 1;cin >> i >> j;i--;j--;while(i < j){LL SIZE = target[i].size();LL last = target[i][SIZE-1];if(last != INF && last <= j){ans += SIZE;i = last;}else{ans += b_Search(i, j);break;}}cout << ans << endl;}return 0;}
Test details
Test 1
Verdict: WRONG ANSWER
input |
---|
1 |
correct output |
---|
0 |
user output |
---|
(empty) |
Test 2
Verdict: WRONG ANSWER
input |
---|
2 |
correct output |
---|
0 |
user output |
---|
(empty) |
Test 3
Verdict: WRONG ANSWER
input |
---|
3 |
correct output |
---|
0 |
user output |
---|
(empty) |
Test 4
Verdict: WRONG ANSWER
input |
---|
4 |
correct output |
---|
0 |
user output |
---|
(empty) |
Test 5
Verdict: WRONG ANSWER
input |
---|
5 |
correct output |
---|
0 |
user output |
---|
(empty) |
Test 6
Verdict: WRONG ANSWER
input |
---|
6 |
correct output |
---|
1 |
user output |
---|
(empty) |
Test 7
Verdict: WRONG ANSWER
input |
---|
7 |
correct output |
---|
1 |
user output |
---|
(empty) |
Test 8
Verdict: WRONG ANSWER
input |
---|
8 |
correct output |
---|
2 |
user output |
---|
(empty) |
Test 9
Verdict: WRONG ANSWER
input |
---|
9 |
correct output |
---|
3 |
user output |
---|
(empty) |
Test 10
Verdict: WRONG ANSWER
input |
---|
10 |
correct output |
---|
4 |
user output |
---|
(empty) |
Test 11
Verdict: WRONG ANSWER
input |
---|
20 |
correct output |
---|
24 |
user output |
---|
(empty) |
Test 12
Verdict: WRONG ANSWER
input |
---|
30 |
correct output |
---|
61 |
user output |
---|
(empty) |
Test 13
Verdict: WRONG ANSWER
input |
---|
40 |
correct output |
---|
114 |
user output |
---|
(empty) |
Test 14
Verdict: WRONG ANSWER
input |
---|
50 |
correct output |
---|
184 |
user output |
---|
(empty) |
Test 15
Verdict: WRONG ANSWER
input |
---|
60 |
correct output |
---|
271 |
user output |
---|
(empty) |
Test 16
Verdict: WRONG ANSWER
input |
---|
70 |
correct output |
---|
374 |
user output |
---|
(empty) |
Test 17
Verdict: WRONG ANSWER
input |
---|
80 |
correct output |
---|
494 |
user output |
---|
(empty) |
Test 18
Verdict: WRONG ANSWER
input |
---|
90 |
correct output |
---|
631 |
user output |
---|
(empty) |
Test 19
Verdict: WRONG ANSWER
input |
---|
100 |
correct output |
---|
784 |
user output |
---|
(empty) |
Test 20
Verdict: WRONG ANSWER
input |
---|
200 |
correct output |
---|
3234 |
user output |
---|
(empty) |
Test 21
Verdict: WRONG ANSWER
input |
---|
300 |
correct output |
---|
7351 |
user output |
---|
(empty) |
Test 22
Verdict: WRONG ANSWER
input |
---|
400 |
correct output |
---|
13134 |
user output |
---|
(empty) |
Test 23
Verdict: WRONG ANSWER
input |
---|
500 |
correct output |
---|
20584 |
user output |
---|
(empty) |
Test 24
Verdict: WRONG ANSWER
input |
---|
600 |
correct output |
---|
29701 |
user output |
---|
(empty) |
Test 25
Verdict: WRONG ANSWER
input |
---|
700 |
correct output |
---|
40484 |
user output |
---|
(empty) |
Test 26
Verdict: WRONG ANSWER
input |
---|
800 |
correct output |
---|
52934 |
user output |
---|
(empty) |
Test 27
Verdict: WRONG ANSWER
input |
---|
900 |
correct output |
---|
67051 |
user output |
---|
(empty) |
Test 28
Verdict: WRONG ANSWER
input |
---|
1000 |
correct output |
---|
82834 |
user output |
---|
(empty) |