CSES - Harjoituskisa 7.1.2018 - Results
Submission details
Task:Keskiarvot
Sender:Kuha
Submission time:2018-01-07 19:32:45 +0200
Language:C++
Status:READY
Result:100
Feedback
groupverdictscore
#1ACCEPTED12
#2ACCEPTED17
#3ACCEPTED71
Test results
testverdicttimegroup
#1ACCEPTED0.04 s1details
#2ACCEPTED0.05 s1details
#3ACCEPTED0.05 s1details
#4ACCEPTED0.05 s1details
#5ACCEPTED0.05 s1details
#6ACCEPTED0.05 s2details
#7ACCEPTED0.05 s2details
#8ACCEPTED0.05 s2details
#9ACCEPTED0.04 s2details
#10ACCEPTED0.03 s2details
#11ACCEPTED0.07 s3details
#12ACCEPTED0.07 s3details
#13ACCEPTED0.06 s3details
#14ACCEPTED0.08 s3details
#15ACCEPTED0.08 s3details

Code

#include <bits/stdc++.h>

#define N (1<<17)
#define ll long long
#define ld long double
#define M 1000000007
#define INF 0x5ADFACE5
#define LINF 0x51DEEFFEC7C0DECALL
#define pii pair<int, int>
#define pll pair<long long, long long>
#define F first
#define S second

using namespace std;

ll v[111111];
ll s[111111];
ll sz[111111];

ll gs (ll a, ll b) {
	if (a == 0) return s[b];
	return s[b] - s[a - 1];
}

int main () {
	cin.sync_with_stdio(false);
	cin.tie(0);
	int n;
	cin>>n;
	for (int i = 0; i < n; i++) cin>>v[i];
	for (int i = 0; i < n; i++) {
		s[i] = v[i];
		if (i) s[i] += s[i - 1];
	}
	for (int i = 0; i < n; i++) {
		sz[i] = 1;
		int j = i - 1;
		while (j >= 0) {
			// s_1 / n_1 <= s_2 / n_2 <=> s_1n_2 <= s_2n_1
			if (gs(j + 1, i) * (sz[i] + sz[j]) <= gs(i - sz[i] - sz[j] + 1, i) * sz[i]) {
				sz[i] += sz[j];
				j = i - sz[i];
			} else break;
		}
		cout<<sz[i]<<" ";
	}
	cout<<endl;
}

Test details

Test 1

Group: 1

Verdict: ACCEPTED

input
100
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

user output
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

Test 2

Group: 1

Verdict: ACCEPTED

input
100
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

correct output
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

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

Test 3

Group: 1

Verdict: ACCEPTED

input
100
1000000 999999 999998 999997 9...

correct output
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

user output
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

Test 4

Group: 1

Verdict: ACCEPTED

input
100
4 1 6 9 4 793899 5 5 8 7 5 4 7...

correct output
1 2 1 1 2 1 2 3 4 5 6 7 8 9 10...

user output
1 2 1 1 2 1 2 3 4 5 6 7 8 9 10...

Test 5

Group: 1

Verdict: ACCEPTED

input
100
442147 824215 62008 513740 542...

correct output
1 1 2 1 1 3 1 2 6 10 11 12 1 1...

user output
1 1 2 1 1 3 1 2 6 10 11 12 1 1...

Test 6

Group: 2

Verdict: ACCEPTED

input
5000
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

user output
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

Test 7

Group: 2

Verdict: ACCEPTED

input
5000
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

correct output
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

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

Test 8

Group: 2

Verdict: ACCEPTED

input
5000
1000000 999999 999998 999997 9...

correct output
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

user output
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

Test 9

Group: 2

Verdict: ACCEPTED

input
5000
7 5 6 1 9 1 1 6 10 8 7 4 7 1 1...

correct output
1 2 3 4 1 2 7 1 1 2 3 4 5 6 1 ...

user output
1 2 3 4 1 2 7 1 1 2 3 4 5 6 1 ...

Test 10

Group: 2

Verdict: ACCEPTED

input
5000
236071 202283 94200 149202 642...

correct output
1 2 3 4 1 1 2 3 5 1 2 1 9 10 1...

user output
1 2 3 4 1 1 2 3 5 1 2 1 9 10 1...

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
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

user output
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

Test 12

Group: 3

Verdict: ACCEPTED

input
100000
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

correct output
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

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

Test 13

Group: 3

Verdict: ACCEPTED

input
100000
1000000 999999 999998 999997 9...

correct output
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

user output
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

Test 14

Group: 3

Verdict: ACCEPTED

input
100000
4 10 3 2 235575 7 374394 4 4 5...

correct output
1 1 2 3 1 2 1 2 3 6 7 8 9 10 1...

user output
1 1 2 3 1 2 1 2 3 6 7 8 9 10 1...

Test 15

Group: 3

Verdict: ACCEPTED

input
100000
243549 902542 256118 941342 41...

correct output
1 1 2 1 2 5 6 1 8 9 1 2 12 13 ...

user output
1 1 2 1 2 5 6 1 8 9 1 2 12 13 ...