CSES - UKIEPC 2016 - Results
Submission details
Task:Secret Santa
Sender:KnowYourArchitecture
Submission time:2016-11-12 16:38:18 +0200
Language:C++
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.04 sdetails
#2ACCEPTED0.06 sdetails
#3ACCEPTED0.05 sdetails
#4ACCEPTED0.08 sdetails
#5ACCEPTED0.06 sdetails
#6ACCEPTED0.05 sdetails
#7ACCEPTED0.06 sdetails
#8ACCEPTED0.06 sdetails
#9ACCEPTED0.06 sdetails
#10ACCEPTED0.05 sdetails
#11ACCEPTED0.06 sdetails
#12ACCEPTED0.05 sdetails
#13ACCEPTED0.06 sdetails
#14ACCEPTED0.05 sdetails
#15ACCEPTED0.06 sdetails
#16ACCEPTED0.06 sdetails
#17ACCEPTED0.06 sdetails
#18ACCEPTED0.06 sdetails
#19ACCEPTED0.06 sdetails
#20ACCEPTED0.05 sdetails
#21ACCEPTED0.05 sdetails
#22ACCEPTED0.06 sdetails
#23ACCEPTED0.06 sdetails
#24ACCEPTED0.06 sdetails
#25ACCEPTED0.05 sdetails
#26ACCEPTED0.06 sdetails
#27ACCEPTED0.06 sdetails
#28ACCEPTED0.06 sdetails
#29ACCEPTED0.06 sdetails
#30ACCEPTED0.05 sdetails
#31ACCEPTED0.05 sdetails
#32ACCEPTED0.05 sdetails

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:38:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = 0; i < n; i++) v.push_back(i);
                      ^
input/code.cpp:43:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (int i = 0; i < n; i++) {
                       ^

Code

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

typedef unsigned long long int ull;
typedef long double ld;

int main() {
	ull n;
	cin >> n;
	
	ull u = 0;
	ull d = 1;
	
	cout.precision(20);
	cout<<fixed;
	
	if (n > 20) {
		cout << 0.63212055882855767839 << endl;
		return 0;
	}
	
	for (ull i = 2; i <= n; i++) {
		u *= i;
		if (i % 2 == 0) u++;
		else u--;
		d *= i;
		cout.precision(20);
		cout<<fixed;
		//cout<<u<<" / "<<d<<" -> "<<1-ld(u)/d<<endl;
	}
	cout<<1-ld(u)/d<<endl;
	return 0;
	
	vector<int> v;
	for (int i = 0; i < n; i++) v.push_back(i);
	
	int res = 0;
	
	do {
		for (int i = 0; i < n; i++) {
			if (v[i] == i) goto err;
		}
		res += 1;
		err:;
	} while (next_permutation(v.begin(), v.end()));
	
	cout << res << endl;
}

Test details

Test 1

Verdict: ACCEPTED

input
1

correct output
1.0000000000

user output
1.00000000000000000000

Test 2

Verdict: ACCEPTED

input
999

correct output
0.6321205588

user output
0.63212055882855766598

Test 3

Verdict: ACCEPTED

input
1000

correct output
0.6321205588

user output
0.63212055882855766598

Test 4

Verdict: ACCEPTED

input
1000000

correct output
0.6321205588

user output
0.63212055882855766598

Test 5

Verdict: ACCEPTED

input
1000000000000

correct output
0.6321205588

user output
0.63212055882855766598

Test 6

Verdict: ACCEPTED

input
7

correct output
0.6321428571

user output
0.63214285714285714285

Test 7

Verdict: ACCEPTED

input
8

correct output
0.6321180556

user output
0.63211805555555555553

Test 8

Verdict: ACCEPTED

input
9

correct output
0.6321205588

user output
0.63212081128747795415

Test 9

Verdict: ACCEPTED

input
11

correct output
0.6321205588

user output
0.63212056076639409972

Test 10

Verdict: ACCEPTED

input
12

correct output
0.6321205588

user output
0.63212055867871840096

Test 11

Verdict: ACCEPTED

input
13

correct output
0.6321205588

user output
0.63212055883930883931

Test 12

Verdict: ACCEPTED

input
14

correct output
0.6321205588

user output
0.63212055882783809368

Test 13

Verdict: ACCEPTED

input
19

correct output
0.63212056

user output
0.63212055882855767877

Test 14

Verdict: ACCEPTED

input
20

correct output
0.63212056

user output
0.63212055882855767839

Test 15

Verdict: ACCEPTED

input
21

correct output
0.63212056

user output
0.63212055882855766598

Test 16

Verdict: ACCEPTED

input
45

correct output
0.63212056

user output
0.63212055882855766598

Test 17

Verdict: ACCEPTED

input
59

correct output
0.63212056

user output
0.63212055882855766598

Test 18

Verdict: ACCEPTED

input
72

correct output
0.63212056

user output
0.63212055882855766598

Test 19

Verdict: ACCEPTED

input
98

correct output
0.63212056

user output
0.63212055882855766598

Test 20

Verdict: ACCEPTED

input
104

correct output
0.63212056

user output
0.63212055882855766598

Test 21

Verdict: ACCEPTED

input
299

correct output
0.63212056

user output
0.63212055882855766598

Test 22

Verdict: ACCEPTED

input
986

correct output
0.63212056

user output
0.63212055882855766598

Test 23

Verdict: ACCEPTED

input
2233

correct output
0.63212056

user output
0.63212055882855766598

Test 24

Verdict: ACCEPTED

input
112233

correct output
0.63212056

user output
0.63212055882855766598

Test 25

Verdict: ACCEPTED

input
4123123

correct output
0.63212056

user output
0.63212055882855766598

Test 26

Verdict: ACCEPTED

input
123321123

correct output
0.63212056

user output
0.63212055882855766598

Test 27

Verdict: ACCEPTED

input
4

correct output
0.6250000000

user output
0.62500000000000000000

Test 28

Verdict: ACCEPTED

input
5

correct output
0.6333333333

user output
0.63333333333333333333

Test 29

Verdict: ACCEPTED

input
10

correct output
0.6321205357

user output
0.63212053571428571428

Test 30

Verdict: ACCEPTED

input
66

correct output
0.6321205588

user output
0.63212055882855766598

Test 31

Verdict: ACCEPTED

input
475

correct output
0.6321205588

user output
0.63212055882855766598

Test 32

Verdict: ACCEPTED

input
770

correct output
0.6321205588

user output
0.63212055882855766598