CSES - Leirikisa 6.3.2017 - Results
Submission details
Task:Aitaus
Sender:ankka22
Submission time:2017-03-06 17:53:26 +0200
Language:C++
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#1ACCEPTED0.04 s1details
#2ACCEPTED0.04 s1details
#30.04 s1details
#40.04 s1details
#50.03 s1details
#6ACCEPTED0.04 s2details
#7ACCEPTED0.04 s2details
#80.05 s2details
#90.04 s2details
#100.04 s2details
#11--3details
#12--3details
#13--3details
#14--3details
#15--3details

Compiler report

input/code.cpp: In function 'void leik(std::vector<long int>)':
input/code.cpp:39:12: warning: unused variable 'u' [-Wunused-variable]
  for (auto u: v1) {
            ^
input/code.cpp:43:12: warning: unused variable 'u' [-Wunused-variable]
  for (auto u: vv) {
            ^

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) {
	if (vv.size() == 1) return;
	sort(vv.begin(), vv.end());
	long s2 = 0, s1 = 0;
	for (auto i: vv) s2 += i;
	k += s2;
	vector<long> v1;
	//cout << "SUMMA2"  << s2 << endl;
	int ogs = vv.size();
	for (int i = 0; i < ogs; i++) {
		//cout << "i: " << i << endl;
		if (i % 2 == 0) {
			//cout << s1 << " " << vv.back() << " " << s2 << endl;
			if (s1 + vv.back() <= s2 - vv.back()) {
				//cout << "poistos" << endl;
				s1 += vv.back();
				s2 -= vv.back();
				v1.push_back(vv.back());
				vv.pop_back();
			}
		} else {
			if (s1 + vv[0] <= s2 - vv[0]) {
				s1 += vv[0];
				s2 -= vv[0];
				v1.push_back(vv[0]);
				vv.erase(vv.begin());
			}
		}
	}	
	//cout << "moi" << endl;
	for (auto u: v1) {
		//cout << u << endl;
	}
	//cout << "hei" << endl;
	for (auto u: vv) {
		//cout << u << endl;
	}
	if (v1.size() > 1) leik(v1);
	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);
	long df = 0;
	for (int i = 1; i <= n-1; i++) {
		df += o;
		o -= v.back();
		v.pop_back();
	}
	cout << min(df,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
20281

Test 4

Group: 1

Verdict:

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

correct output
15614

user output
16114

Test 5

Group: 1

Verdict:

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

correct output
20791

user output
21962

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
4957085095231

Test 9

Group: 2

Verdict:

input
1000
599885439 985529375 118284730 ...

correct output
4880180545408

user output
5002166933662

Test 10

Group: 2

Verdict:

input
1000
695015028 950574688 862418845 ...

correct output
5089402448969

user output
5207147947854

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)