CSES - IZhO 2018, day 1 - Results
Submission details
Task:Gift
Sender:Yytsi
Submission time:2019-02-15 15:18:55 +0200
Language:C++
Status:READY
Result:49
Feedback
groupverdictscore
#1ACCEPTED7
#2ACCEPTED11
#3ACCEPTED12
#4ACCEPTED19
#50
Test results
testverdicttimegroup
#1ACCEPTED0.04 s1, 2, 3, 5details
#2ACCEPTED0.05 s1, 2, 3, 5details
#3ACCEPTED0.04 s1, 2, 3, 5details
#4ACCEPTED0.05 s1, 2, 3, 5details
#5ACCEPTED0.04 s1, 2, 3, 5details
#6ACCEPTED0.05 s1, 2, 3, 5details
#7ACCEPTED0.04 s1, 2, 3, 5details
#8ACCEPTED0.05 s2, 3, 5details
#9ACCEPTED0.06 s2, 3, 5details
#10ACCEPTED0.04 s2, 3, 5details
#11ACCEPTED0.10 s2, 3, 5details
#12ACCEPTED0.11 s2, 3, 5details
#13ACCEPTED0.08 s2, 3, 5details
#14ACCEPTED0.07 s2, 3, 5details
#15ACCEPTED0.07 s2, 3, 5details
#16ACCEPTED0.07 s2, 3, 5details
#17ACCEPTED0.07 s3, 5details
#18ACCEPTED0.05 s3, 5details
#19ACCEPTED0.07 s3, 5details
#20ACCEPTED0.06 s3, 5details
#21ACCEPTED0.06 s3, 5details
#22ACCEPTED0.07 s3, 5details
#23ACCEPTED1.00 s4, 5details
#24ACCEPTED0.67 s4, 5details
#25ACCEPTED0.41 s4, 5details
#26ACCEPTED1.23 s4, 5details
#27ACCEPTED0.05 s4, 5details
#28ACCEPTED1.12 s4, 5details
#29ACCEPTED0.05 s4, 5details
#30ACCEPTED0.14 s4, 5details
#31ACCEPTED0.04 s4, 5details
#32ACCEPTED0.56 s4, 5details
#33ACCEPTED0.05 s4, 5details
#340.58 s5details
#350.56 s5details
#360.37 s5details
#37ACCEPTED0.04 s4, 5details
#381.79 s5details
#391.75 s5details
#400.66 s5details
#41--5details
#42--5details
#43--5details
#441.71 s5details
#451.72 s5details
#461.91 s5details
#47--5details
#48--5details
#49--5details
#50--5details
#51--5details
#52--5details
#53--5details
#54--5details
#55--5details
#56--5details

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:39:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     if (s.size() < k) qaq();
         ~~~~~~~~~^~~

Code

#include <bits/stdc++.h>
using namespace std;
#define FOR(i, a, b) for (int i=a; i<(b); i++)
#define IO ios_base::sync_with_stdio(0); cin.tie(0)
#define F first
#define S second
#define pb push_back
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;

#define N 1010101
ll n, k;
set<pll> s;
vector<int> idx[N];
ll val[N];

void qaq() {
  cout<<"-1\n"; exit(0);
}

int main() {
  IO; cin>>n>>k;
  ll sm = 0;
  FOR(i,1,n+1) {
    ll x; cin>>x;
    val[i] = x;
    sm += x;
    s.insert({x, i});
  }

  int cur_oper = 0;
  bool all_same = true;
  ll take = 1;
  FOR(i,1,n) if (val[i] != val[i+1]) all_same = false;
  if (all_same) take = sm / ((n*k) / __gcd(n,k));

  while (!s.empty()) {
    if (s.size() < k) qaq();
    cur_oper++;

    vector<pll> taken;
    FOR(i,0,k) {
      pll big = *s.rbegin();
      idx[cur_oper].pb(big.S);

      s.erase(big);
      big.F -= take;
      taken.pb(big);
    }

    for (pll v : taken) {
      if (v.F) s.insert(v);
    }
  }

  cout<<cur_oper<<"\n";
  FOR(i,1,cur_oper+1) {
    cout<<take<<" ";
    for (int v : idx[i]) cout<<v<<" ";
    cout<<"\n";
  }
}

Test details

Test 1

Group: 1, 2, 3, 5

Verdict: ACCEPTED

input
4 2
2 3 3 2

correct output
3
2 3 1
1 3 2
2 2 4

user output
5
1 3 2 
1 4 3 
1 2 1 
1 4 3 
...

Test 2

Group: 1, 2, 3, 5

Verdict: ACCEPTED

input
3 2
2 1 1

correct output
2
1 1 2 
1 1 3 

user output
2
1 1 3 
1 2 1 

Test 3

Group: 1, 2, 3, 5

Verdict: ACCEPTED

input
3 2
1 2 4

correct output
-1

user output
-1

Test 4

Group: 1, 2, 3, 5

Verdict: ACCEPTED

input
4 2
1 2 3 4

correct output
3
1 1 3 
2 2 4 
2 3 4 

user output
5
1 4 3 
1 4 3 
1 4 2 
1 4 3 
...

Test 5

Group: 1, 2, 3, 5

Verdict: ACCEPTED

input
4 2
1 2 1 5

correct output
-1

user output
-1

Test 6

Group: 1, 2, 3, 5

Verdict: ACCEPTED

input
2 2
4 5

correct output
-1

user output
-1

Test 7

Group: 1, 2, 3, 5

Verdict: ACCEPTED

input
5 2
2 1 3 1 1

correct output
3
2 1 3 
1 2 4 
1 3 5 

user output
4
1 3 1 
1 3 5 
1 4 3 
1 2 1 

Test 8

Group: 2, 3, 5

Verdict: ACCEPTED

input
8 2
1 1 9101 17 161 57013 7 567

correct output
-1

user output
-1

Test 9

Group: 2, 3, 5

Verdict: ACCEPTED

input
14 2
36 117 358 64 1319 1355 5322 5...

correct output
14
36 1 12 
117 2 12 
358 3 12 
64 4 12 
...

user output
14186
1 13 12 
1 13 12 
1 13 12 
1 13 12 
...
Truncated

Test 10

Group: 2, 3, 5

Verdict: ACCEPTED

input
11 2
1 7192 2 49 3973 1 1 68 5274 6...

correct output
11
1 1 5 
2586 2 5 
1 2 6 
1 2 7 
...

user output
8630
1 2 9 
1 2 9 
1 2 9 
1 2 9 
...
Truncated

Test 11

Group: 2, 3, 5

Verdict: ACCEPTED

input
50000 2
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
42250
1 1 33212 
1 2 33212 
1 3 33212 
1 4 33212 
...

user output
50000
1 33212 41667 
1 33212 41667 
1 33212 41667 
1 33212 41667 
...
Truncated

Test 12

Group: 2, 3, 5

Verdict: ACCEPTED

input
50000 2
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
40020
1 1 27450 
1 2 27450 
1 3 27450 
1 4 27450 
...

user output
50000
1 35035 5675 
1 35035 5675 
1 35035 5675 
1 35035 5675 
...
Truncated

Test 13

Group: 2, 3, 5

Verdict: ACCEPTED

input
10 2
2730 1860 241 33771 20985 1391...

correct output
10
2730 1 5 
1860 2 5 
241 3 5 
4756 4 5 
...

user output
50000
1 4 10 
1 4 10 
1 4 10 
1 4 10 
...
Truncated

Test 14

Group: 2, 3, 5

Verdict: ACCEPTED

input
685 2
118 132 114 115 123 136 122 10...

correct output
683
21 1 340 
97 1 341 
36 2 341 
96 2 342 
...

user output
41835
1 123 513 
1 123 513 
1 384 123 
1 513 384 
...
Truncated

Test 15

Group: 2, 3, 5

Verdict: ACCEPTED

input
623 2
150 137 159 157 138 153 137 14...

correct output
622
77 1 312 
73 1 313 
72 2 313 
65 2 314 
...

user output
46071
1 582 398 
1 582 30 
1 582 398 
1 582 30 
...
Truncated

Test 16

Group: 2, 3, 5

Verdict: ACCEPTED

input
973 2
58 52 54 57 52 71 46 58 64 45 ...

correct output
963
48 1 490 
10 1 491 
44 2 491 
8 2 492 
...

user output
25345
1 892 304 
1 892 304 
1 892 849 
1 304 892 
...
Truncated

Test 17

Group: 3, 5

Verdict: ACCEPTED

input
989 3
102 100 91 75 103 79 85 83 98 ...

correct output
982
10 1 328 659 
33 1 329 659 
59 1 329 660 
4 2 329 660 
...

user output
31704
1 316 170 855 
1 431 316 170 
1 855 814 431 
1 316 170 855 
...
Truncated

Test 18

Group: 3, 5

Verdict: ACCEPTED

input
563 8
91 104 85 106 99 84 94 118 94 ...

correct output
547
21 1 71 143 213 283 355 425 49...

user output
6612
1 257 523 473 263 8 533 285 47...
Truncated

Test 19

Group: 3, 5

Verdict: ACCEPTED

input
592 23
161 178 166 168 144 152 152 16...

correct output
547
6 1 26 52 78 104 130 156 182 2...

user output
4159
1 94 396 426 200 543 498 475 4...
Truncated

Test 20

Group: 3, 5

Verdict: ACCEPTED

input
938 15
102 104 89 123 105 111 90 98 9...

correct output
871
5 1 62 125 188 251 313 377 439...

user output
6196
1 931 107 217 94 684 929 4 591...
Truncated

Test 21

Group: 3, 5

Verdict: ACCEPTED

input
747 10
96 88 99 82 108 68 82 110 97 8...

correct output
704
16 1 74 149 224 298 373 449 52...

user output
6771
1 638 172 18 537 649 313 685 8...
Truncated

Test 22

Group: 3, 5

Verdict: ACCEPTED

input
991 13
83 76 94 77 76 88 79 91 85 69 ...

correct output
930
17 1 76 152 229 305 381 458 53...

user output
6049
1 739 37 171 940 835 429 22 12...
Truncated

Test 23

Group: 4, 5

Verdict: ACCEPTED

input
1000000 2
1000000000000 1000000000000 10...

correct output
500000
1000000000000 1 500001 
1000000000000 2 500002 
1000000000000 3 500003 
1000000000000 4 500004 
...

user output
500000
1000000000000 1000000 999999 
1000000000000 999998 999997 
1000000000000 999996 999

...
Truncated

Test 24

Group: 4, 5

Verdict: ACCEPTED

input
666666 3
1500001500001 1500001500001 15...

correct output
222222
1500001500001 1 222223 444445 ...

user output
222222
1500001500001 666666 666665 66...
Truncated

Test 25

Group: 4, 5

Verdict: ACCEPTED

input
400000 5
2500000000000 2500000000000 25...

correct output
80000
2500000000000 1 80001 160001 2...

user output
80000
2500000000000 400000 399999 39...
Truncated

Test 26

Group: 4, 5

Verdict: ACCEPTED

input
285714 7
3500003500000 3500003500000 35...

correct output
285714
500000500000 1 40817 81633 122...

user output
285714
500000500000 285714 285713 285...
Truncated

Test 27

Group: 4, 5

Verdict: ACCEPTED

input
20000 100
50000000000000 50000000000000 ...

correct output
200
50000000000000 1 201 401 601 8...

user output
200
50000000000000 20000 19999 199...
Truncated

Test 28

Group: 4, 5

Verdict: ACCEPTED

input
181818 11
5500005500000 5500005500000 55...

correct output
181818
500000500000 1 16529 33058 495...

user output
181818
500000500000 181818 181817 181...
Truncated

Test 29

Group: 4, 5

Verdict: ACCEPTED

input
10000 200
100000000000000 10000000000000...

correct output
50
100000000000000 1 51 101 151 2...

user output
50
100000000000000 10000 9999 999...
Truncated

Test 30

Group: 4, 5

Verdict: ACCEPTED

input
6666 300
150015001500150 15001500150015...

correct output
1111
3000300030003 1 23 45 67 89 11...

user output
1111
3000300030003 6666 6665 6664 6...
Truncated

Test 31

Group: 4, 5

Verdict: ACCEPTED

input
4000 500
250000000000000 25000000000000...

correct output
8
250000000000000 1 9 17 25 33 4...

user output
8
250000000000000 4000 3999 3998...
Truncated

Test 32

Group: 4, 5

Verdict: ACCEPTED

input
2857 700
350017500875000 35001750087500...

correct output
2857
500025001250 1 5 9 13 17 21 25...

user output
2857
500025001250 2857 2856 2855 28...
Truncated

Test 33

Group: 4, 5

Verdict: ACCEPTED

input
2000 1000
500000000000000 50000000000000...

correct output
2
500000000000000 1 3 5 7 9 11 1...

user output
2
500000000000000 2000 1999 1998...
Truncated

Test 34

Group: 5

Verdict:

input
23514 2
18103 5348 3625 12835 15660 90...

correct output
23513
6865 1 11793 
11202 1 11794 
36 1 11795 
5348 2 11795 
...

user output
(empty)

Test 35

Group: 5

Verdict:

input
23514 2
18292 21082 22492 20359 17760 ...

correct output
23514
8265 1 11746 
8926 1 11747 
1101 1 11748 
9890 2 11748 
...

user output
(empty)

Test 36

Group: 5

Verdict:

input
940 2
73 1 1 1 1 1 1 1 1 1 1 1 1 1 1...

correct output
940
73 1 640 
1 2 640 
1 3 640 
1 4 640 
...

user output
(empty)

Test 37

Group: 4, 5

Verdict: ACCEPTED

input
2 2
50000000000000 50000000000000

correct output
1
50000000000000 1 2 

user output
1
50000000000000 2 1 

Test 38

Group: 5

Verdict:

input
100000 5
134 153 148 128 126 146 165 16...

correct output
98678
33 1 20010 40009 59997 80000 
10 1 20010 40010 59997 80000 
3 1 20010 40010 59997 80001 
58 1 20011 40010 59997 80001 
...

user output
(empty)

Test 39

Group: 5

Verdict:

input
100000 5
152 137 163 145 132 157 183 15...

correct output
98711
1 1 19996 40005 60007 80009 
71 1 19996 40005 60008 80009 
46 1 19997 40005 60008 80009 
24 1 19997 40005 60008 80010 
...

user output
(empty)

Test 40

Group: 5

Verdict:

input
10 5
1499332 1501242 1498874 150016...

correct output
10
574 1 2 5 7 9 
1498721 1 3 5 7 9 
37 1 3 6 7 9 
116 2 3 6 7 9 
...

user output
(empty)

Test 41

Group: 5

Verdict:

input
100 50
1002132999440 1001266333597 10...

correct output
100
1267999683 1 2 4 6 8 10 12 14 ...

user output
(empty)

Test 42

Group: 5

Verdict:

input
1000 50
100346633179 101226632849 1003...

correct output
1000
1839998687 1 20 40 60 80 100 1...

user output
(empty)

Test 43

Group: 5

Verdict:

input
1000000 2
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

correct output
999996
1 1 707107 
2 2 707107 
3 3 707107 
4 4 707107 
...

user output
(empty)

Test 44

Group: 5

Verdict:

input
1000000 2
999999551533 1000000473528 100...

correct output
1000000
146192314 1 500000 
999853359219 1 500001 
146463134 2 500001 
999854010394 2 500002 
...

user output
(empty)

Test 45

Group: 5

Verdict:

input
666666 3
1500001336447 1500001298201 15...

correct output
666666
1499958849879 1 222223 444445 ...

user output
(empty)

Test 46

Group: 5

Verdict:

input
400000 5
2499999946636 2500000060399 25...

correct output
400000
2499910300054 1 80001 160001 2...

user output
(empty)

Test 47

Group: 5

Verdict:

input
2336 856
42808218598 42808218183 428082...

correct output
2336
10257 1 3 6 9 11 14 17 20 22 2...

user output
(empty)

Test 48

Group: 5

Verdict:

input
285714 7
3500003576920 3500003507271 35...

correct output
285714
499997032073 1 40817 81633 122...

user output
(empty)

Test 49

Group: 5

Verdict:

input
181818 11
5500005515540 5500005459088 55...

correct output
181818
500002072749 1 16529 33058 495...

user output
(empty)

Test 50

Group: 5

Verdict:

input
40000 50
25000000005730 24999999994976 ...

correct output
40000
4690 1 800 1600 2401 3200 4001...

user output
(empty)

Test 51

Group: 5

Verdict:

input
20000 100
50000000003586 50000000000483 ...

correct output
19998
3844 1 201 401 600 801 1001 12...

user output
(empty)

Test 52

Group: 5

Verdict:

input
10000 200
100000000000713 99999999996921...

correct output
9995
84 1 51 100 151 201 250 301 35...

user output
(empty)

Test 53

Group: 5

Verdict:

input
6666 300
150015001497695 15001500150098...

correct output
6666
6771 1 23 45 67 89 112 134 156...

user output
(empty)

Test 54

Group: 5

Verdict:

input
4000 500
250000000001078 24999999999820...

correct output
3979
93 1 9 16 24 32 40 48 56 64 72...

user output
(empty)

Test 55

Group: 5

Verdict:

input
2857 700
350017500876401 35001750087429...

correct output
2857
500024974229 1 5 9 13 17 21 25...

user output
(empty)

Test 56

Group: 5

Verdict:

input
2000 1000
499999999999833 50000000000035...

correct output
1955
1 1 2 4 6 8 11 13 15 17 19 21 ...

user output
(empty)