CSES - APIO 2007 - Results
Submission details
Task:Backup
Sender:Katajisto
Submission time:2019-03-07 15:26:12 +0200
Language:C++
Status:READY
Result:30
Feedback
groupverdictscore
#1ACCEPTED30
#20
#30
Test results
testverdicttimegroup
#1ACCEPTED0.01 s1, 2, 3details
#2ACCEPTED0.26 s1, 2, 3details
#30.07 s3details
#40.08 s3details
#5ACCEPTED0.27 s1, 2, 3details
#60.07 s2, 3details
#7ACCEPTED0.01 s1, 2, 3details
#8ACCEPTED0.05 s1, 2, 3details
#90.05 s2, 3details
#100.07 s2, 3details
#110.07 s3details
#120.07 s3details
#130.07 s3details
#14ACCEPTED0.02 s1, 2, 3details
#150.01 s2, 3details
#160.07 s3details
#170.06 s3details
#180.02 s2, 3details
#190.04 s2, 3details
#200.07 s3details

Compiler report

input/code.cpp: In function 'void gen(int, int, long long int)':
input/code.cpp:24:8: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if(s >= vp.size()) return;
      ~~^~~~~~~~~~~~

Code

#include<bits/stdc++.h>
using namespace std;

int n,k;
vector<pair<int,int>> vp;
bool tk[21];
long long mn = 1e12;
long long d[21];

/*

  100p is for losers
  30p  brute is for winners
  -Tuomas Katajisto 2019

 */

void gen(int s, int ccc, long long dist) {
  if(ccc >= k) {
    mn = min(mn,dist);
    return;
  }
  if(dist > mn) return;
  if(s >= vp.size()) return;
  bool doDo = true;
  if(tk[vp[s].first] || tk[vp[s].second]) doDo = false;
  long long ddd = abs(d[vp[s].first]-d[vp[s].second]);
  if(doDo) {
    tk[vp[s].first] = true;
    tk[vp[s].second] = true;
    gen(s+1,ccc+1,dist+ddd);
    tk[vp[s].first] = false;
    tk[vp[s].second] = false;
  }
  gen(s+1,ccc,dist);
}

int main() {
  cin >> n >> k;
  for(int i = 0; i < n; i++) {
    for(int j = i+1; j < n; j++) {
      vp.push_back({i,j});
    }
  }
  for(int i = 0; i < n; i++) cin >> d[i];
  sort(vp.begin(),vp.end());
  gen(0,0,0);
  cout << mn << "\n";
}

Test details

Test 1

Group: 1, 2, 3

Verdict: ACCEPTED

input
2 1
0
1000000000

correct output
1000000000

user output
1000000000

Test 2

Group: 1, 2, 3

Verdict: ACCEPTED

input
17 8
101266
101394
101458
101490
...

correct output
340

user output
340

Test 3

Group: 3

Verdict:

input
100000 49000
29983
53806
76909
106815
...

correct output
411321413

user output
(empty)

Test 4

Group: 3

Verdict:

input
100000 30000
29983
53806
76909
106815
...

correct output
100755932

user output
(empty)

Test 5

Group: 1, 2, 3

Verdict: ACCEPTED

input
20 10
126229031
250138471
333910089
443521720
...

correct output
537092323

user output
537092323

Test 6

Group: 2, 3

Verdict:

input
10000 4999
168328
266967
462469
639689
...

correct output
492516409

user output
(empty)

Test 7

Group: 1, 2, 3

Verdict: ACCEPTED

input
10 4
165
375
439
456
...

correct output
44

user output
44

Test 8

Group: 1, 2, 3

Verdict: ACCEPTED

input
20 9
4336
4500
4552
4702
...

correct output
773

user output
773

Test 9

Group: 2, 3

Verdict:

input
2001 1000
1230
1440
1630
2230
...

correct output
493503

user output
(empty)

Test 10

Group: 2, 3

Verdict:

input
10000 3000
245408
417449
650973
863296
...

correct output
101056127

user output
(empty)

Test 11

Group: 3

Verdict:

input
50000 20000
37035
37042
37046
37052
...

correct output
129968

user output
(empty)

Test 12

Group: 3

Verdict:

input
99999 48000
15929
43928
65765
86730
...

correct output
375524431

user output
(empty)

Test 13

Group: 3

Verdict:

input
100000 1000
536
9214
34619
53734
...

correct output
75975

user output
(empty)

Test 14

Group: 1, 2, 3

Verdict: ACCEPTED

input
10 4
5851
5854
5856
5859
...

correct output
2664

user output
2664

Test 15

Group: 2, 3

Verdict:

input
100 45
3712
13742
17394
19428
...

correct output
140256

user output
(empty)

Test 16

Group: 3

Verdict:

input
20000 400
3174
3175
3176
3179
...

correct output
803105

user output
(empty)

Test 17

Group: 3

Verdict:

input
100000 49000
3605
14510
18001
20881
...

correct output
162316123

user output
(empty)

Test 18

Group: 2, 3

Verdict:

input
100 50
0
1000000
1000002
1000005
...

correct output
1002499

user output
(empty)

Test 19

Group: 2, 3

Verdict:

input
1000 500
0
1000000
1000002
1000005
...

correct output
1249999

user output
(empty)

Test 20

Group: 3

Verdict:

input
100000 49494
123
65659
98427
114811
...

correct output
250954854

user output
(empty)