CSES - Leirikisa 6.3.2017 - Results
Submission details
Task:Aitaus
Sender:JesseNiininen
Submission time:2017-03-06 18:09:01 +0200
Language:C++
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#10.03 s1details
#20.04 s1details
#30.05 s1details
#40.04 s1details
#50.04 s1details
#6--2details
#7--2details
#80.00 s2details
#90.00 s2details
#100.00 s2details
#11--3details
#12--3details
#130.00 s3details
#140.00 s3details
#150.00 s3details

Compiler report

input/code.cpp: In function 'void eiHyvinMee(std::vector<int>, int)':
input/code.cpp:17:35: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int j = 0; j < v.size(); j++){
                                   ^
input/code.cpp:35:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int j = 0; j < v.size(); j++){
                               ^
input/code.cpp:36:9: warning: 'smallestEz' may be used uninitialized in this function [-Wmaybe-uninitialized]
         if(smallestEz & (1 << j)){
         ^

Code

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

int cost = 0;

void eiHyvinMee(vector<int> v, int l){
    if(v.size() <= 1)
        return;
    cost += l;
    int ez = pow(2, v.size());
    int i = 0;
    int smallestDiff = 1000000;
    int smallestEz;
    while(i < ez){
        int g1 = 0;
        int g2 = 0;
        for(int j = 0; j < v.size(); j++){
            if(i & (1 << j)){
                g1 += v[j];
            }else{
                g2 += v[j];
            }
        }
        if(abs(g1 - g2) < smallestDiff){
            smallestDiff = abs(g1 - g2);
            smallestEz = i;
        }
        i++;
    }

    vector<int> g1;
    vector<int> g2;
    int g1L = 0;
    int g2L = 0;
    for(int j = 0; j < v.size(); j++){
        if(smallestEz & (1 << j)){
            g1.push_back(v[j]);
            g1L += v[j];
        }else{
            g2.push_back(v[j]);
            g2L += v[j];
        }
    }

    cout << g1L << " and " << g2L << "\n";

    eiHyvinMee(g1, g1L);
    eiHyvinMee(g2, g2L);
}

int main()
{
    int n;
    cin >> n;

    vector<int> v(n);
    int l = 0;
    for(int i = 0; i < n; i++){
        cin >> v[i];
        l += v[i];
    }

    eiHyvinMee(v, l);


    cout << cost << "\n";
}

Test details

Test 1

Group: 1

Verdict:

input
10
1 1 1 1 1 1 1 1 1 1

correct output
34

user output
5 and 5
2 and 3
1 and 1
1 and 2
1 and 1
...

Test 2

Group: 1

Verdict:

input
10
1000 1000 1000 1000 1000 1000 ...

correct output
34000

user output
5000 and 5000
2000 and 3000
1000 and 1000
1000 and 2000
1000 and 1000
...

Test 3

Group: 1

Verdict:

input
10
713 590 643 971 889 796 972 3 ...

correct output
18501

user output
3000 and 2996
1561 and 1439
590 and 971
643 and 796
1602 and 1394
...

Test 4

Group: 1

Verdict:

input
10
991 740 433 558 522 338 240 27...

correct output
15614

user output
2427 and 2427
1263 and 1164
991 and 272
740 and 424
1231 and 1196
...

Test 5

Group: 1

Verdict:

input
10
397 775 568 796 632 898 214 84...

correct output
20791

user output
3205 and 3215
1557 and 1648
775 and 782
568 and 214
898 and 750
...

Test 6

Group: 2

Verdict:

input
1000
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
9976

user output
(empty)

Test 7

Group: 2

Verdict:

input
1000
1000000000 1000000000 10000000...

correct output
9976000000000

user output
(empty)

Test 8

Group: 2

Verdict:

input
1000
377480143 777745434 296992200 ...

correct output
4829974948360

user output
(empty)

Test 9

Group: 2

Verdict:

input
1000
599885439 985529375 118284730 ...

correct output
4880180545408

user output
(empty)

Test 10

Group: 2

Verdict:

input
1000
695015028 950574688 862418845 ...

correct output
5089402448969

user output
(empty)

Test 11

Group: 3

Verdict:

input
100000
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
1668928

user output
(empty)

Test 12

Group: 3

Verdict:

input
100000
1000000000 1000000000 10000000...

correct output
1668928000000000

user output
(empty)

Test 13

Group: 3

Verdict:

input
100000
391395666 905124111 713186504 ...

correct output
818091245007558

user output
(empty)

Test 14

Group: 3

Verdict:

input
100000
535008265 825579494 118746814 ...

correct output
819167891088786

user output
(empty)

Test 15

Group: 3

Verdict:

input
100000
386356481 309596857 386341601 ...

correct output
816647450882063

user output
(empty)