CSES - Leirikisa 6.3.2017 - Results
Submission details
Task:Aitaus
Sender:ankka22
Submission time:2017-03-06 18:51:49 +0200
Language:C++
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#1ACCEPTED0.03 s1details
#2ACCEPTED0.04 s1details
#30.05 s1details
#4ACCEPTED0.05 s1details
#5ACCEPTED0.04 s1details
#6ACCEPTED0.04 s2details
#7ACCEPTED0.04 s2details
#80.06 s2details
#90.05 s2details
#100.04 s2details
#11ACCEPTED0.10 s3details
#12ACCEPTED0.14 s3details
#130.15 s3details
#140.17 s3details
#150.20 s3details

Code

#include <iostream>
#include <vector>
#include <unordered_map>
#include <algorithm>
using namespace std;
long n, o, p, k;
vector<long> v;
void leik(vector<long> vv) {
	if (vv.size() == 1) return;
	else if (vv.size() == 2) {
		k += vv[0]+vv[1];
		return;
	}
	long s1 = 0, s2 = 0;
	sort(vv.rbegin(), vv.rend());
	vector<long> v2;
	//cout << vv.size() << endl;
	for (auto u: vv) s1 += u;
	k += s1;
	while (max(s2 + vv.back(),  s1 - vv.back()) < max(s2, s1)) {
	//cout << s2 + vv.back() << " " << s1 - vv.back() << endl;
		s2 += vv.back();
		s1 -= vv.back();
		//cout << "moikkamoi" << endl;
		v2.push_back(vv.back());
		vv.pop_back();
	}
	//cout << "kierrokselle lähtee: " << v2.size() << " " << vv.size() << endl;
	if (v2.size() > 1) leik(v2);
	if (vv.size() > 1) leik(vv);
	
}
int main() {
	cin >> n;
	for (int i = 0; i < n; i++) {
		cin >> p;
		o += p;
		v.push_back(p);
	}
	sort(v.begin(), v.end());
	leik(v);
	cout << k << '\n';
}

Test details

Test 1

Group: 1

Verdict: ACCEPTED

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

correct output
34

user output
34

Test 2

Group: 1

Verdict: ACCEPTED

input
10
1000 1000 1000 1000 1000 1000 ...

correct output
34000

user output
34000

Test 3

Group: 1

Verdict:

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

correct output
18501

user output
18541

Test 4

Group: 1

Verdict: ACCEPTED

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

correct output
15614

user output
15614

Test 5

Group: 1

Verdict: ACCEPTED

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

correct output
20791

user output
20791

Test 6

Group: 2

Verdict: ACCEPTED

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

correct output
9976

user output
9976

Test 7

Group: 2

Verdict: ACCEPTED

input
1000
1000000000 1000000000 10000000...

correct output
9976000000000

user output
9976000000000

Test 8

Group: 2

Verdict:

input
1000
377480143 777745434 296992200 ...

correct output
4829974948360

user output
4843646255149

Test 9

Group: 2

Verdict:

input
1000
599885439 985529375 118284730 ...

correct output
4880180545408

user output
4892722850556

Test 10

Group: 2

Verdict:

input
1000
695015028 950574688 862418845 ...

correct output
5089402448969

user output
5103875924463

Test 11

Group: 3

Verdict: ACCEPTED

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

correct output
1668928

user output
1668928

Test 12

Group: 3

Verdict: ACCEPTED

input
100000
1000000000 1000000000 10000000...

correct output
1668928000000000

user output
1668928000000000

Test 13

Group: 3

Verdict:

input
100000
391395666 905124111 713186504 ...

correct output
818091245007558

user output
819516557579739

Test 14

Group: 3

Verdict:

input
100000
535008265 825579494 118746814 ...

correct output
819167891088786

user output
820600676389441

Test 15

Group: 3

Verdict:

input
100000
386356481 309596857 386341601 ...

correct output
816647450882063

user output
818068402892679