CSES - Datatähti 2021 alku - Results
Submission details
Task:2021-luvut
Sender:caro
Submission time:2020-10-03 19:08:20 +0300
Language:C++ (C++11)
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
#40
Test results
testverdicttimegroup
#10.01 s1, 2, 3, 4details
#2ACCEPTED0.01 s1, 2, 3, 4details
#30.01 s1, 2, 3, 4details
#4ACCEPTED0.01 s1, 2, 3, 4details
#50.01 s1, 2, 3, 4details
#60.01 s1, 2, 3, 4details
#70.01 s1, 2, 3, 4details
#80.01 s1, 2, 3, 4details
#90.01 s1, 2, 3, 4details
#10ACCEPTED0.01 s1, 2, 3, 4details
#110.01 s2, 3, 4details
#120.01 s2, 3, 4details
#13ACCEPTED0.01 s2, 3, 4details
#140.01 s2, 3, 4details
#150.01 s2, 3, 4details
#160.01 s2, 3, 4details
#170.01 s2, 3, 4details
#18ACCEPTED0.01 s2, 3, 4details
#19ACCEPTED0.01 s2, 3, 4details
#20ACCEPTED0.01 s2, 3, 4details
#210.01 s3, 4details
#22ACCEPTED0.01 s3, 4details
#230.01 s3, 4details
#240.01 s3, 4details
#250.01 s3, 4details
#260.01 s3, 4details
#270.01 s3, 4details
#28ACCEPTED0.01 s3, 4details
#290.01 s3, 4details
#30ACCEPTED0.01 s3, 4details
#310.01 s4details
#320.01 s4details
#330.01 s4details
#340.01 s4details
#350.01 s4details
#360.01 s4details
#370.01 s4details
#38ACCEPTED0.01 s4details
#390.01 s4details
#400.01 s4details

Compiler report

input/code.cpp: In function 'ull f(ull, ull, ull, ull)':
input/code.cpp:114:17: warning: 'm' may be used uninitialized in this function [-Wmaybe-uninitialized]
  return (ull)(m * pow(10, p)) + f(n - lc, p - 1, mm, 0);
              ~~~^~~~~~~~~~~~~
input/code.cpp:114:34: warning: 'lc' may be used uninitialized in this function [-Wmaybe-uninitialized]
  return (ull)(m * pow(10, p)) + f(n - lc, p - 1, mm, 0);
                                 ~^~~~~~~~~~~~~~~~~~~~~~

Code

#include <bits/stdc++.h>
using namespace std;
typedef unsigned long long ull;

ull f(ull n, ull sp, ull s, ull ss){
	ull p = sp;
	ull c = 0;
	ull lc;
	ull m;
	//printf("%lld\n", n);
	while(1){
		if(s == 0){
			for(m = ss; m < 10; m++){
				lc = c;
				if(m == 2){
					for(ull i = p - 1; i > 1; i--){
						ull u = pow(9, p - 1 - i);
						for(ull j = i - 1; j > 0; j--){
							ull v = pow(9, i - 1 - j);
							ull w = pow(10, j) - pow(9, j);
							c += u * v * w;
						}
					}
				}
				else {
					for(ull h = p - 1; h > 2; h--){
						ull t = pow(9, p - 1 - h);
						for(ull i = h - 1; i > 1; i--){
							ull u = pow(9, h - 1 - i);
							for(ull j = i - 1; j > 0; j--){
								ull v = pow(9, i - 1 - j);
								ull w = pow(10, j) - pow(9, j);
								c += t * u * v * w;
							}
						}
					}
				}
				if(c >= n) break;
			}
		}
		else if(s == 1){
			for(m = ss; m < 10; m++){
				lc = c;
				if(m == 0){
					for(ull j = p - 1; j > 0; j--){
						ull v = pow(9, p - 1 - j);
						ull w = pow(10, j) - pow(9, j);
						c += v * w;
					}
				}
				else {
					for(ull i = p - 1; i > 1; i--){
						ull u = pow(9, p - 1 - i);
						for(ull j = i - 1; j > 0; j--){
							ull v = pow(9, i - 1 - j);
							ull w = pow(10, j) - pow(9, j);
							c += u * v * w;
						}
					}
				}
				if(c >= n) break;
			}
		}
		else if(s == 2){
			for(m = ss; m < 10; m++){
				lc = c;
				if(m == 2){
					c += pow(10, p) - pow(9, p);
				}
				else {
					for(ull j = p - 1; j > 0; j--){
						ull v = pow(9, p - 1 - j);
						ull w = pow(10, j) - pow(9, j);
						c += v * w;
					}
				}
				if(c >= n) break;
			}
		}
		else if(s == 3){
			for(m = 0; m < 10; m++){
				lc = c;
				if(p > 0){
					if(m == 1){
						c += pow(10, p);
					}
					else{
						c += pow(10, p) - pow(9, p);
					}
				}
				else{
					m++;
					c++;
				}
				if(c >= n) break;
			}
		}
		else if(s == 4){
			printf("%lld\n", n);
			return n - 1;
		}
		if(c >= n) break;
		p++;
	}
	//printf("%lld\n", (ull)(m * pow(10, p)));
	ull mm;
	if(s == 0 && m != 2) mm = 0;
	else if(s == 1 && m != 0) mm = 1;
	else if(s == 2 && m != 2) mm = 2;
	else if(s == 3 && m != 1) mm = 3;
	else if(s == 4) mm = 4;
	else mm = s + 1;
	if(p == 0) return m;
	return (ull)(m * pow(10, p)) + f(n - lc, p - 1, mm, 0);
}

int main(){
	ull n;
	cin >> n;
	cout << f(n, 1, 0, 1) << '\n';
	return 0;
}

Test details

Test 1

Group: 1, 2, 3, 4

Verdict:

input
10

correct output
20214

user output
5
20214

Test 2

Group: 1, 2, 3, 4

Verdict: ACCEPTED

input
359

correct output
202661

user output
202661

Test 3

Group: 1, 2, 3, 4

Verdict:

input
392

correct output
202819

user output
10
202819

Test 4

Group: 1, 2, 3, 4

Verdict: ACCEPTED

input
715

correct output
230721

user output
230721

Test 5

Group: 1, 2, 3, 4

Verdict:

input
278

correct output
202219

user output
10
202219

Test 6

Group: 1, 2, 3, 4

Verdict:

input
296

correct output
202318

user output
9
202318

Test 7

Group: 1, 2, 3, 4

Verdict:

input
427

correct output
203214

user output
5
203214

Test 8

Group: 1, 2, 3, 4

Verdict:

input
565

correct output
208212

user output
3
208212

Test 9

Group: 1, 2, 3, 4

Verdict:

input
289

correct output
202311

user output
2
202311

Test 10

Group: 1, 2, 3, 4

Verdict: ACCEPTED

input
342

correct output
202581

user output
202581

Test 11

Group: 2, 3, 4

Verdict:

input
964486

correct output
182502018

user output
9
182502018

Test 12

Group: 2, 3, 4

Verdict:

input
110979

correct output
20296916

user output
7
20296916

Test 13

Group: 2, 3, 4

Verdict: ACCEPTED

input
759149

correct output
126108721

user output
126108721

Test 14

Group: 2, 3, 4

Verdict:

input
234934

correct output
25023210

user output
1
25023210

Test 15

Group: 2, 3, 4

Verdict:

input
610310

correct output
120288133

user output
34
120288133

Test 16

Group: 2, 3, 4

Verdict:

input
956690

correct output
182027419

user output
10
182027419

Test 17

Group: 2, 3, 4

Verdict:

input
608459

correct output
120281827

user output
828
120281827

Test 18

Group: 2, 3, 4

Verdict: ACCEPTED

input
944777

correct output
175260251

user output
175260251

Test 19

Group: 2, 3, 4

Verdict: ACCEPTED

input
880780

correct output
152270421

user output
152270421

Test 20

Group: 2, 3, 4

Verdict: ACCEPTED

input
418357

correct output
68202361

user output
68202361

Test 21

Group: 3, 4

Verdict:

input
713294506861

correct output
20099206371786

user output
787
20099206371786

Test 22

Group: 3, 4

Verdict: ACCEPTED

input
191431126351

correct output
4193020274761

user output
4193020274761

Test 23

Group: 3, 4

Verdict:

input
778422318223

correct output
20247733120134

user output
20135
20247733120134

Test 24

Group: 3, 4

Verdict:

input
931090767075

correct output
20691282041612

user output
613
20691282041612

Test 25

Group: 3, 4

Verdict:

input
198806129726

correct output
4275365802196

user output
97
4275365802196

Test 26

Group: 3, 4

Verdict:

input
724343399444

correct output
20128443204610

user output
1
20128443204610

Test 27

Group: 3, 4

Verdict:

input
105064053560

correct output
2350677231115

user output
116
2350677231115

Test 28

Group: 3, 4

Verdict: ACCEPTED

input
236866700902

correct output
5872395029521

user output
5872395029521

Test 29

Group: 3, 4

Verdict:

input
696349488695

correct output
20034225603103

user output
4
20034225603103

Test 30

Group: 3, 4

Verdict: ACCEPTED

input
30929267826

correct output
1205256095901

user output
1205256095901

Test 31

Group: 4

Verdict:

input
576379198814226780

correct output
4185251600926331891

user output
892
4185251600926331891

Test 32

Group: 4

Verdict:

input
291698664446913099

correct output
2280132983584730156

user output
57
2280132983584730156

Test 33

Group: 4

Verdict:

input
693146378550043345

correct output
5270258230724009910

user output
1
5270258230724009910

Test 34

Group: 4

Verdict:

input
685982323362439932

correct output
5236052744416920782

user output
6920783
5236052744416920782

Test 35

Group: 4

Verdict:

input
838865925103308874

correct output
6800200426815679149

user output
5679150
6800200426815679149

Test 36

Group: 4

Verdict:

input
766426223219980635

correct output
6112960212822572807

user output
2822572808
6112960212822572807

Test 37

Group: 4

Verdict:

input
652970397451919317

correct output
4923188580186259818

user output
9
4923188580186259818

Test 38

Group: 4

Verdict: ACCEPTED

input
188458586650539464

correct output
1903508375720755921

user output
1903508375720755921

Test 39

Group: 4

Verdict:

input
157646989818721527

correct output
1525038392797601315

user output
316
1525038392797601315

Test 40

Group: 4

Verdict:

input
898606361978236778

correct output
7326676702587314407

user output
4408
7326676702587314407