CSES - Siperia opettaa 3.0 - Results
Submission details
Task:Jump
Sender:Hansuzu
Submission time:2016-07-29 15:54:12 +0300
Language:C++
Status:READY
Result:0
Feedback
groupverdictscore
#10
Test results
testverdicttime
#1ACCEPTED0.06 sdetails
#20.05 sdetails
#3ACCEPTED0.17 sdetails
#4ACCEPTED0.17 sdetails
#5ACCEPTED0.17 sdetails
#6ACCEPTED0.17 sdetails
#7ACCEPTED0.18 sdetails
#8ACCEPTED0.16 sdetails
#90.17 sdetails
#100.16 sdetails
#11ACCEPTED0.17 sdetails
#12ACCEPTED0.17 sdetails
#13ACCEPTED0.19 sdetails
#14ACCEPTED0.17 sdetails
#15ACCEPTED0.17 sdetails
#160.17 sdetails
#170.17 sdetails
#180.18 sdetails
#190.18 sdetails
#20ACCEPTED0.14 sdetails
#210.18 sdetails
#220.17 sdetails
#230.18 sdetails
#240.17 sdetails
#250.16 sdetails
#260.15 sdetails
#270.16 sdetails
#280.18 sdetails
#290.16 sdetails
#300.15 sdetails
#310.18 sdetails
#320.18 sdetails
#330.18 sdetails
#34ACCEPTED0.17 sdetails
#350.16 sdetails
#360.16 sdetails

Code

#include <iostream>
using namespace std;
#define INF 1000000000
int N, Q;

int a[202];

int mnd0t[30303];
int mnd1t[30303];
int mnd0[30303];
int mnd1[30303];

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


int gmnd0(int a){
  if (!okc(a)) return INF;
  return mnd0[a];
}
int gmnd1(int a){
  if (!okc(a)) return INF;
  return mnd1[a];
}

int getm(int a, int b){b+=10101;
  return min(gmnd0(b-a), gmnd1(b+a));
}

int main(){
  for (int i=0; i<30303; ++i) mnd0[i]=mnd1[i]=mnd0t[i]=mnd1t[i]=INF;
  cin >> N;
  mnd0[10101]=mnd0t[10101]=0;
  for (int i=0; i<N; ++i){
    cin >> a[i]; a[i]+=10101;
    for (int j=0; j<30303; ++j){
      int jt=2*a[i]-j;
      if (!okc(jt)) continue;
      if (mnd0[j]!=INF){
	mnd1t[jt]=min(mnd1t[jt], mnd0[j]+1);
      }
      if (mnd1[j]!=INF){
	mnd0t[jt]=min(mnd0t[jt], mnd1[j]+1);
      }
    }
    for (int j=0; j<30303; ++j){
      mnd0[j]=mnd0t[j];
      mnd1[j]=mnd1t[j];
    }
  }
  cin >> Q;
  for (int i=0; i<Q; ++i){
    int s, t;
    cin >> s >> t;
    int ans=min(getm(t, s), getm(s, t));
    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:

input
4
1
2
6
10
...

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

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

Test 3

Verdict: ACCEPTED

input
200
12
14
30
101
...

correct output
2
2
1
2
2
...

user output
2
2
1
2
2
...

Test 4

Verdict: ACCEPTED

input
200
13
22
196
211
...

correct output
2
2
2
2
2
...

user output
2
2
2
2
2
...

Test 5

Verdict: ACCEPTED

input
200
10
41
107
167
...

correct output
2
1
2
2
2
...

user output
2
1
2
2
2
...

Test 6

Verdict: ACCEPTED

input
200
91
166
275
278
...

correct output
2
2
2
3
2
...

user output
2
2
2
3
2
...

Test 7

Verdict: ACCEPTED

input
200
18
104
138
182
...

correct output
2
2
2
2
2
...

user output
2
2
2
2
2
...

Test 8

Verdict: ACCEPTED

input
200
115
144
272
274
...

correct output
2
2
2
2
2
...

user output
2
2
2
2
2
...

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: ACCEPTED

input
200
0
77
132
189
...

correct output
2
2
2
2
2
...

user output
2
2
2
2
2
...

Test 12

Verdict: ACCEPTED

input
200
3
33
74
118
...

correct output
2
2
2
2
2
...

user output
2
2
2
2
2
...

Test 13

Verdict: ACCEPTED

input
200
95
162
171
448
...

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

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

Test 14

Verdict: ACCEPTED

input
200
32
72
229
239
...

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

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

Test 15

Verdict: ACCEPTED

input
200
30
124
136
176
...

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

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

Test 16

Verdict:

input
116
34
68
85
87
...

correct output
2
2
2
2
2
...

user output
2
2
2
2
2
...

Test 17

Verdict:

input
112
64
264
268
298
...

correct output
2
2
2
2
2
...

user output
2
2
2
2
2
...

Test 18

Verdict:

input
64
14
15
19
31
...

correct output
8
6
10
4
6
...

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

Test 19

Verdict:

input
200
0
1
2
3
...

correct output
14
14
8
6
40
...

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

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:

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
-1
-1
-1
-1
-1
...

Test 23

Verdict:

input
4
2388
2979
6715
8029
...

correct output
10
52
47
56
77
...

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

Test 24

Verdict:

input
5
1371
1946
6455
6889
...

correct output
24
6
15
25
26
...

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

Test 25

Verdict:

input
6
1026
1031
4929
5038
...

correct output
18
9
11
12
8
...

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

Test 26

Verdict:

input
7
21
44
60
70
...

correct output
16
20
16
20
10
...

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

Test 27

Verdict:

input
8
95
627
710
784
...

correct output
6
4
5
5
6
...

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

Test 28

Verdict:

input
9
48
209
791
920
...

correct output
3
4
3
6
6
...

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

Test 29

Verdict:

input
10
814
1017
1217
3259
...

correct output
4
6
6
4
6
...

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

Test 30

Verdict:

input
2
6748
9615
100000
6956 7730
...

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

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

Test 31

Verdict:

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:

input
2
0
1
100000
3190 5237
...

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

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

Test 36

Verdict:

input
2
9999
10000
100000
4761 947
...

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

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