CSES - Putka Open 2015 – finaali - Results
Submission details
Task:Omenat
Sender:
Submission time:2015-12-20 16:51:27 +0200
Language:C++
Status:READY
Result:56
Feedback
groupverdictscore
#1ACCEPTED56.2
Test results
testverdicttimescore
#1ACCEPTED0.55 s5.9details
#2ACCEPTED0.41 s5.4details
#3ACCEPTED0.53 s5.6details
#4ACCEPTED0.51 s5.7details
#5ACCEPTED0.50 s5.2details
#6ACCEPTED0.50 s5.6details
#7ACCEPTED0.43 s5.6details
#8ACCEPTED0.52 s5.5details
#9ACCEPTED0.53 s5.9details
#10ACCEPTED0.54 s5.8details

Code

#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
#include <string>
#define ll long long
#define N (2<<16)

using namespace std;

#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
#include <string>
#define ll long long
#define N (2<<16)

using namespace std;

int r (double d) {
	if (d >= (int)d + 0.5) return (int)d + 1;
	return (int)d;
}

int main () {
	int n;
	cin>>n;
	double v[n];
	ll s = 0;
	for (int i = 0; i < n; i++) {
		cin>>v[i];
		s += (long long)r(v[i]);
	}
	while (s / 2 > 10000000) {
		for (int i = 0; i < n; i++) {
			v[i] /= 10;
		}
		s /= 10;
	}
	s /= 2;
	int x[s + 1];
	for (int i = 0; i < s + 1; i++) x[i] = 0;
	x[0] = 1;
	for (int i = 0; i < n; i++) {
		for (int z = s; z >= v[i]; z--) {
			if (x[z]) continue;
			if (x[z - r(v[i])]) x[z] = i + 1;
		}
	}
	bool b[n];
	//for (int i : x) cout<<i<<" ";
	//cout<<endl;
	for (int i = 0; i < n; i++) b[i] = false;
	for (int i = s; i >= 0; i--) {
		if (x[i]) {
			while (i != 0) {
				//cout<<x[i] - 1<<endl;
				b[x[i] - 1] = true;
				i -= r(v[x[i] - 1]);
			}
			break;
		}
	}
	for (bool r : b) {
		cout<<(2 - (int)r)<<" ";
	}
	cout<<endl;
}

Test details

Test 1

Verdict: ACCEPTED

input
95
779724552 231968220 985023789 ...

correct output
(empty)

user output
2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

Test 2

Verdict: ACCEPTED

input
85
229722261 51722691 862338862 8...

correct output
(empty)

user output
2 2 1 2 1 1 1 1 2 1 1 1 1 1 1 ...

Test 3

Verdict: ACCEPTED

input
97
398995377 989444445 634573915 ...

correct output
(empty)

user output
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

Test 4

Verdict: ACCEPTED

input
99
843687873 164010938 51269970 4...

correct output
(empty)

user output
1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 ...

Test 5

Verdict: ACCEPTED

input
90
864611617 418460939 773297829 ...

correct output
(empty)

user output
2 2 1 1 1 1 1 1 1 1 1 1 2 1 1 ...

Test 6

Verdict: ACCEPTED

input
92
289890246 25801423 763027596 7...

correct output
(empty)

user output
2 2 1 1 2 1 1 1 2 1 1 1 1 1 1 ...

Test 7

Verdict: ACCEPTED

input
89
879039800 50522278 850785072 4...

correct output
(empty)

user output
1 2 1 1 1 1 1 1 1 2 1 2 1 1 1 ...

Test 8

Verdict: ACCEPTED

input
96
27192469 222283781 681532515 1...

correct output
(empty)

user output
2 2 2 1 1 1 1 1 1 2 1 1 1 2 1 ...

Test 9

Verdict: ACCEPTED

input
100
186459081 254674429 394007236 ...

correct output
(empty)

user output
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

Test 10

Verdict: ACCEPTED

input
98
612168861 979831717 671087051 ...

correct output
(empty)

user output
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...