CSES - Putka Open 2020 – 2/5 - Results
Submission details
Task:Summat
Sender:ArktinenKarpalo
Submission time:2020-09-26 22:06:58 +0300
Language:C++11
Status:READY
Result:100
Feedback
groupverdictscore
#1ACCEPTED12
#2ACCEPTED32
#3ACCEPTED56
Test results
testverdicttimegroup
#1ACCEPTED0.01 s1, 2, 3details
#2ACCEPTED0.01 s1, 2, 3details
#3ACCEPTED0.01 s1, 2, 3details
#4ACCEPTED0.01 s1, 2, 3details
#5ACCEPTED0.01 s1, 2, 3details
#6ACCEPTED0.01 s2, 3details
#7ACCEPTED0.01 s2, 3details
#8ACCEPTED0.01 s2, 3details
#9ACCEPTED0.01 s2, 3details
#10ACCEPTED0.01 s2, 3details
#11ACCEPTED0.01 s3details
#12ACCEPTED0.01 s3details
#13ACCEPTED0.01 s3details
#14ACCEPTED0.01 s3details
#15ACCEPTED0.01 s3details

Compiler report

input/code.cpp: In function 'std::vector<int> lol(std::vector<int>)':
input/code.cpp:13:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0; i<a.size(); i++) {
               ~^~~~~~~~~
input/code.cpp: In function 'std::vector<int> lol2(std::vector<int>*, int)':
input/code.cpp:38:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0; i<b->size(); i++)
               ~^~~~~~~~~~
input/code.cpp:52:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0; i<b->size(); i++) {
               ~^~~~~~~~~~
input/code.cpp:57:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int j=i; j<b->size(); j++) {
                ~^~~~~~~~~~
input/code.cpp:63:10: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    if(pnt==a.size())
       ~~~^~~~~~~~~~
input/code.cpp:66:10: warning...

Code

#include <bits/stdc++.h>
#define ll long long
#define ull unsigned long long
#define ld long double
#define M 1000000007

using namespace std;

vector<int> lol(vector<int> a) {
	vector<tuple<int,int,int>> b;
	vector<int> bb;
	sort(a.begin(), a.end());
	for(int i=0; i<a.size(); i++) {
		for(int j=0; j<i; j++) {
			b.push_back(make_tuple(a[i]+a[j], min(i, j), max(i, j)));
			bb.push_back(a[i]+a[j]);
		}
	}
	sort(b.begin(), b.end());
/*for(auto u:a)
		cout << u << " ";
	cout << endl;
	for(auto u:b) {
		cout << get<0>(u) << " " << get<1>(u) << " " << get<2>(u) << " ";
		if(a[get<1>(u)] == a[get<1>(b[0])])
			cout << "x";
		cout << "\n";*/
	//	cout << get<0>(u) << " ";
	//	}*/

//	cout << endl;
	sort(bb.begin(), bb.end());
	return bb;
}

int z[1010101];
vector<int> lol2(vector<int> *b, int pienin) {
	for(int i=0; i<b->size(); i++)
		z[i] = 0;
	//int pienin = b[0]/2;
	vector<int> a;
	/*for(auto u:b) {
		if(u != ed) {
			pienin = u-b[0];
			break;
		}
	}*/
	a.push_back(pienin);
	a.push_back((*b)[0]-pienin);
//	cout << a[0] << " ja " << a[1] << endl;
	z[0] = 1;
	for(int i=0; i<b->size(); i++) {
		if(z[i])
			continue;
		int pnt=0;
	int cnt = 0;
		for(int j=i; j<b->size(); j++) {
			if(z[j] || (*b)[j] != (((*b)[i]-pienin)+a[pnt]))
				continue;
			pnt++;
			z[j] = 1;
			cnt++;
			if(pnt==a.size())
				break;
		}
		if(cnt != a.size())
			return {};
		a.push_back((*b)[i]-pienin);
	}

	return a;
}

int main() {
	cin.tie(0);
	ios_base::sync_with_stdio(0);
	int sd = time(NULL);
	srand(sd);
	int n=100;
	cin >> n;
	vector<int> A;
	int f;
	for(int i=0; i<(n*(n-1))/2; i++) {
		cin >> f;
		A.push_back(f);
	}
	sort(A.begin(),A.end());
	for(int i=0; i<101; i++) {
		vector<int> ans = lol2(&A, (A[0]+A[1]-A[i])/2);
		if(ans.size() == n) {
			for(auto u:ans)
				cout << u << " ";
			return 0;
		}
	}

//		lol(lol2(lol(v), i));
	//lol(v);
	//lol({1,2,3,4,5});
	//lol(lol2({4,4,4,6,6,6}, 1));
}

Test details

Test 1

Group: 1, 2, 3

Verdict: ACCEPTED

input
5
2 2 2 2 2 2 2 2 2 2

correct output
1 1 1 1 1 

user output
1 1 1 1 1 

Test 2

Group: 1, 2, 3

Verdict: ACCEPTED

input
5
3 4 5 5 6 6 7 7 8 9

correct output
1 2 3 4 5 

user output
1 2 3 4 5 

Test 3

Group: 1, 2, 3

Verdict: ACCEPTED

input
5
5 6 6 6 9 9 9 10 10 10

correct output
1 4 5 5 5 

user output
1 4 5 5 5 

Test 4

Group: 1, 2, 3

Verdict: ACCEPTED

input
5
2 3 3 6 6 6 6 7 7 10

correct output
1 1 2 5 5 

user output
1 1 2 5 5 

Test 5

Group: 1, 2, 3

Verdict: ACCEPTED

input
5
4 5 5 5 5 6 6 6 7 7

correct output
2 2 3 3 4 

user output
2 2 3 3 4 

Test 6

Group: 2, 3

Verdict: ACCEPTED

input
20
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 ...

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 7

Group: 2, 3

Verdict: ACCEPTED

input
20
3 4 5 5 6 6 7 7 7 8 8 8 9 9 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 8

Group: 2, 3

Verdict: ACCEPTED

input
20
52 55 55 57 62 62 63 64 66 71 ...

correct output
1 51 54 54 56 61 61 62 63 65 7...

user output
1 51 54 54 56 61 61 62 63 65 7...

Test 9

Group: 2, 3

Verdict: ACCEPTED

input
20
25 30 31 32 36 39 40 41 45 45 ...

correct output
8 17 22 23 24 28 43 50 53 55 6...

user output
8 17 22 23 24 28 43 50 53 55 6...

Test 10

Group: 2, 3

Verdict: ACCEPTED

input
20
9 10 14 17 17 20 21 22 24 25 2...

correct output
1 8 9 13 16 19 30 32 38 40 43 ...

user output
1 8 9 13 16 19 30 32 38 40 43 ...

Test 11

Group: 3

Verdict: ACCEPTED

input
100
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 ...

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 12

Group: 3

Verdict: ACCEPTED

input
100
3 4 5 5 6 6 7 7 7 8 8 8 9 9 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 13

Group: 3

Verdict: ACCEPTED

input
100
502824619 505239810 505668108 ...

correct output
1 502824618 505239809 50566810...

user output
1 502824618 505239809 50566810...

Test 14

Group: 3

Verdict: ACCEPTED

input
100
17871832 41618648 51611938 538...

correct output
3939271 13932561 37679377 4989...

user output
3939271 13932561 37679377 4989...

Test 15

Group: 3

Verdict: ACCEPTED

input
100
70588435 115481965 116040218 1...

correct output
5902586 64685849 109579379 110...

user output
5902586 64685849 109579379 110...