CSES - HIIT Open 2024 - Results
Submission details
Task:Conspiracies everywhere
Sender:Aalto CS-A1140 Team 2
Submission time:2024-11-16 12:25:44 +0200
Language:C++ (C++17)
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.00 sdetails
#2ACCEPTED0.00 sdetails
#3ACCEPTED0.00 sdetails
#4ACCEPTED0.00 sdetails
#5ACCEPTED0.00 sdetails
#6ACCEPTED0.00 sdetails
#7ACCEPTED0.00 sdetails
#8ACCEPTED0.00 sdetails
#9ACCEPTED0.00 sdetails
#10ACCEPTED0.00 sdetails
#11ACCEPTED0.00 sdetails
#12ACCEPTED0.00 sdetails
#13ACCEPTED0.00 sdetails
#14ACCEPTED0.00 sdetails
#15ACCEPTED0.00 sdetails
#16ACCEPTED0.00 sdetails

Code

#include <bits/stdc++.h>

using namespace std;

#define rep(i, a, b) for (int i = (a); i < (b); i++)
#define all(x) begin(x), end(x)
#define sz(x) (int)(x).size()
typedef long long ll;
typedef pair<int, int> pii;
typedef vector<int> vi;

ll ncr[100][100];

void fail() {
	cout << "The truth is out there" << endl;
	exit(0);
}

int main() {
	cin.tie(0)->sync_with_stdio(0);
	cin.exceptions(cin.failbit);
	int n;
	ll q;
	cin >> n >> q;
	for (int i = 0; i <= n - 1; ++i)
		ncr[i][0] = 1;
	for (int i = 1; i <= n - 1; ++i) {
		for (int j = 1; j <= n - 1; ++j) {
			ncr[i][j] = ncr[i - 1][j] + ncr[i - 1][j - 1];
			if (ncr[i][j] > q) fail();
		}
	}
	vector<ll> ans(n, 1);
	ll sum = 0;
	for (int i = 0; i <= n - 1; ++i) {
		sum += ncr[n - 1][i];
		if (sum > q) fail();
	}
	if (sum > q) fail();
	ans[0] += q - sum;
	for (auto x : ans) cout << x << " ";
	cout << endl;
}

Test details

Test 1

Verdict: ACCEPTED

input
3 8

correct output
5 1 1

user output
5 1 1 

Test 2

Verdict: ACCEPTED

input
2 1

correct output
The truth is out there

user output
The truth is out there

Test 3

Verdict: ACCEPTED

input
1 1000000000000000000

correct output
1000000000000000000

user output
1000000000000000000 

Test 4

Verdict: ACCEPTED

input
1 1

correct output
1

user output

Test 5

Verdict: ACCEPTED

input
60 1000000000000000000

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

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

Test 6

Verdict: ACCEPTED

input
10 512

correct output
1 1 1 1 1 1 1 1 1 1

user output
1 1 1 1 1 1 1 1 1 1 

Test 7

Verdict: ACCEPTED

input
60 500000000000000000

correct output
The truth is out there

user output
The truth is out there

Test 8

Verdict: ACCEPTED

input
5 1000000000

correct output
999999985 1 1 1 1

user output
999999985 1 1 1 1 

Test 9

Verdict: ACCEPTED

input
19 1000000000

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

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

Test 10

Verdict: ACCEPTED

input
59 1000000000000000000

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

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

Test 11

Verdict: ACCEPTED

input
42 133713371337

correct output
The truth is out there

user output
The truth is out there

Test 12

Verdict: ACCEPTED

input
42 1337133713371337

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

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

Test 13

Verdict: ACCEPTED

input
2 2

correct output
1 1

user output
1 1 

Test 14

Verdict: ACCEPTED

input
2 1000000000000000000

correct output
999999999999999999 1

user output
999999999999999999 1 

Test 15

Verdict: ACCEPTED

input
10 511

correct output
The truth is out there

user output
The truth is out there

Test 16

Verdict: ACCEPTED

input
10 513

correct output
2 1 1 1 1 1 1 1 1 1

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