CSES - Siperia opettaa 3.0 - Results
Submission details
Task:Jump
Sender:Hansuzu
Submission time:2016-07-29 16:28:21 +0300
Language:C++
Status:READY
Result:0
Feedback
groupverdictscore
#10
Test results
testverdicttime
#1ACCEPTED0.06 sdetails
#2ACCEPTED0.06 sdetails
#30.17 sdetails
#40.17 sdetails
#50.17 sdetails
#60.18 sdetails
#70.18 sdetails
#80.17 sdetails
#90.17 sdetails
#100.16 sdetails
#110.18 sdetails
#120.17 sdetails
#130.17 sdetails
#140.18 sdetails
#150.17 sdetails
#16ACCEPTED0.18 sdetails
#17ACCEPTED0.18 sdetails
#18ACCEPTED0.18 sdetails
#19ACCEPTED0.17 sdetails
#20ACCEPTED0.15 sdetails
#21ACCEPTED0.16 sdetails
#220.18 sdetails
#230.17 sdetails
#240.15 sdetails
#250.17 sdetails
#26ACCEPTED0.18 sdetails
#27ACCEPTED0.17 sdetails
#28ACCEPTED0.17 sdetails
#290.16 sdetails
#30ACCEPTED0.16 sdetails
#31ACCEPTED0.17 sdetails
#320.16 sdetails
#330.17 sdetails
#34ACCEPTED0.17 sdetails
#35ACCEPTED0.17 sdetails
#360.17 sdetails

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:33:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (int j=0; j<p.size(); ++j){
                          ^

Code

#include <iostream>
#include <vector>
#define MP make_pair
#define F first
#define S second
using namespace std;
#define INF 1000000000
int N, Q;

int a[202];

int mnd[2][303030];

bool okc(int a){
  return a>=0 && a<30303;
}


int gmnd(int p, int a){
  if (!okc(a)) return INF;
  return mnd[p][a];
}
vector<pair<int, pair<int, int> > > p;

int main(){
  for (int i=0; i<30303; ++i) mnd[0][i]=mnd[1][i]=INF;
  cin >> N;
  for (int i=0; i<N; ++i){
    cin >> a[i]; a[i]+=10101;
  }
  mnd[0][10101]=0;
  p.push_back(MP(10101, MP(0, 0)));
  for (int j=0; j<p.size(); ++j){
    int cp=p[j].F;
    int mp=p[j].S.F;
    int vl=p[j].S.S;
    if (mnd[mp][cp]!=vl) continue;
    for (int i=0; i<N; ++i){
      int jt=2*a[i]-cp;
      if (!okc(jt)) break;
      if (mnd[!mp][jt]>vl+1){
	mnd[!mp][jt]=vl+1;
	p.push_back(MP(jt, MP(!mp, vl+1)));
      }
    }
  }
  cin >> Q;
  for (int i=0; i<Q; ++i){
    int s, t;
    cin >> s >> t; t+=10101;
    int ans=min(gmnd(0, t-s), gmnd(1, t+s));
    if (ans==INF) cout << -1 << "\n";
    else cout << ans << "\n";
  }
  
}

Test details

Test 1

Verdict: ACCEPTED

input
4
1
2
4
7
...

correct output
-1
-1
2
2
-1
...

user output
-1
-1
2
2
-1
...

Test 2

Verdict: ACCEPTED

input
4
1
2
6
10
...

correct output
-1
1
2
-1
1
...

user output
-1
1
2
-1
1
...

Test 3

Verdict:

input
200
12
14
30
101
...

correct output
2
2
1
2
2
...

user output
2
2
1
2
2
...

Test 4

Verdict:

input
200
13
22
196
211
...

correct output
2
2
2
2
2
...

user output
2
2
3
2
2
...

Test 5

Verdict:

input
200
10
41
107
167
...

correct output
2
1
2
2
2
...

user output
2
1
2
2
2
...

Test 6

Verdict:

input
200
91
166
275
278
...

correct output
2
2
2
3
2
...

user output
2
2
2
3
3
...

Test 7

Verdict:

input
200
18
104
138
182
...

correct output
2
2
2
2
2
...

user output
2
2
3
3
2
...

Test 8

Verdict:

input
200
115
144
272
274
...

correct output
2
2
2
2
2
...

user output
2
2
2
2
3
...

Test 9

Verdict:

input
200
84
177
208
219
...

correct output
2
2
2
2
1
...

user output
2
2
2
2
1
...

Test 10

Verdict:

input
200
96
131
228
258
...

correct output
2
2
2
2
2
...

user output
2
2
2
2
2
...

Test 11

Verdict:

input
200
0
77
132
189
...

correct output
2
2
2
2
2
...

user output
2
2
2
2
2
...

Test 12

Verdict:

input
200
3
33
74
118
...

correct output
2
2
2
2
2
...

user output
3
3
2
3
3
...

Test 13

Verdict:

input
200
95
162
171
448
...

correct output
-1
-1
2
2
2
...

user output
-1
-1
2
2
2
...

Test 14

Verdict:

input
200
32
72
229
239
...

correct output
2
-1
2
2
-1
...

user output
2
-1
3
3
-1
...

Test 15

Verdict:

input
200
30
124
136
176
...

correct output
2
-1
2
-1
2
...

user output
2
-1
2
-1
2
...

Test 16

Verdict: ACCEPTED

input
116
34
68
85
87
...

correct output
2
2
2
2
2
...

user output
2
2
2
2
2
...

Test 17

Verdict: ACCEPTED

input
112
64
264
268
298
...

correct output
2
2
2
2
2
...

user output
2
2
2
2
2
...

Test 18

Verdict: ACCEPTED

input
64
14
15
19
31
...

correct output
8
6
10
4
6
...

user output
8
6
10
4
6
...

Test 19

Verdict: ACCEPTED

input
200
0
1
2
3
...

correct output
14
14
8
6
40
...

user output
14
14
8
6
40
...

Test 20

Verdict: ACCEPTED

input
1
2231
100000
16 2
6 8
...

correct output
-1
-1
-1
-1
-1
...

user output
-1
-1
-1
-1
-1
...

Test 21

Verdict: ACCEPTED

input
2
1091
2342
100000
1588 4004
...

correct output
-1
-1
-1
-1
-1
...

user output
-1
-1
-1
-1
-1
...

Test 22

Verdict:

input
3
144
151
440
100000
...

correct output
168
99
87
262
16
...

user output
168
99
87
262
16
...

Test 23

Verdict:

input
4
2388
2979
6715
8029
...

correct output
10
52
47
56
77
...

user output
10
52
47
56
77
...

Test 24

Verdict:

input
5
1371
1946
6455
6889
...

correct output
24
6
15
25
26
...

user output
24
6
15
25
26
...

Test 25

Verdict:

input
6
1026
1031
4929
5038
...

correct output
18
9
11
12
8
...

user output
18
9
11
12
8
...

Test 26

Verdict: ACCEPTED

input
7
21
44
60
70
...

correct output
16
20
16
20
10
...

user output
16
20
16
20
10
...

Test 27

Verdict: ACCEPTED

input
8
95
627
710
784
...

correct output
6
4
5
5
6
...

user output
6
4
5
5
6
...

Test 28

Verdict: ACCEPTED

input
9
48
209
791
920
...

correct output
3
4
3
6
6
...

user output
3
4
3
6
6
...

Test 29

Verdict:

input
10
814
1017
1217
3259
...

correct output
4
6
6
4
6
...

user output
5
6
6
4
6
...

Test 30

Verdict: ACCEPTED

input
2
6748
9615
100000
6956 7730
...

correct output
-1
-1
-1
-1
-1
...

user output
-1
-1
-1
-1
-1
...

Test 31

Verdict: ACCEPTED

input
2
2955
5079
100000
5049 3601
...

correct output
-1
-1
-1
-1
-1
...

user output
-1
-1
-1
-1
-1
...

Test 32

Verdict:

input
2
8591
9235
100000
6759 9705
...

correct output
-1
-1
-1
-1
-1
...

user output
-1
-1
-1
-1
-1
...

Test 33

Verdict:

input
2
1847
2965
100000
6674 4858
...

correct output
-1
-1
-1
-1
-1
...

user output
-1
-1
-1
-1
-1
...

Test 34

Verdict: ACCEPTED

input
2
2033
7688
100000
4427 4007
...

correct output
-1
-1
-1
-1
-1
...

user output
-1
-1
-1
-1
-1
...

Test 35

Verdict: ACCEPTED

input
2
0
1
100000
3190 5237
...

correct output
-1
-1
-1
4232
4266
...

user output
-1
-1
-1
4232
4266
...

Test 36

Verdict:

input
2
9999
10000
100000
4761 947
...

correct output
3814
1612
-1
-1
-1
...

user output
14291
1612
-1
-1
-1
...