CSES - Datatähti 2021 alku - Results
Submission details
Task:2021-luvut
Sender:Eljas
Submission time:2020-10-08 20:44:57 +0300
Language:C++ (C++17)
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
#40
Test results
testverdicttimegroup
#1ACCEPTED0.01 s1, 2, 3, 4details
#20.01 s1, 2, 3, 4details
#30.01 s1, 2, 3, 4details
#40.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
#100.01 s1, 2, 3, 4details
#110.09 s2, 3, 4details
#120.02 s2, 3, 4details
#130.07 s2, 3, 4details
#140.03 s2, 3, 4details
#150.06 s2, 3, 4details
#160.09 s2, 3, 4details
#170.06 s2, 3, 4details
#180.09 s2, 3, 4details
#190.08 s2, 3, 4details
#200.05 s2, 3, 4details
#21--3, 4details
#22--3, 4details
#23--3, 4details
#24--3, 4details
#25--3, 4details
#26--3, 4details
#27--3, 4details
#28--3, 4details
#29--3, 4details
#30--3, 4details
#31--4details
#32--4details
#33--4details
#34--4details
#35--4details
#36--4details
#37--4details
#38--4details
#39--4details
#40--4details

Code

#include <string>
#include <iostream>
#include <algorithm>

void addThousand(std::string& s) {
	int size = s.size();

	std::string fh = s.substr(0, size - 3);
	std::string sh = s.substr(size - 3, 4);


	if (fh == "")
	{
		s = "1" + sh;
	}
	else {
		long long l = std::stoll(fh);
		l++;

		std::string ls = std::to_string(l);

		s = ls + sh;
		while (std::count(s.begin(), s.end(), '2') < 2)
		{
			l++;
			ls = std::to_string(l);
			s = ls + sh;
		}


		/*if (s[0] == '2' && fh[0] != '2')
		{
			int it = 1;
			while (s[it] != '2') {
				it++;
			}
			s[it] = '0';
		}*/
	}
}

void addHundred(std::string& s) {
	int size = s.size();

	if (s[size - 3] == '0')
	{
		if (s[size - 4] == '0')
		{
			s[size - 3] = '1';
		}

		else //if (s[size - 4] == '2')
		{
			std::string fh = s.substr(0, size - 3);

			if (s[size - 4] == '1' && fh.find('0') != std::string::npos)
			{
				s[size - 3] = '1';
			}
			else
			{
				addThousand(s);

			}

			return;
		}
	}
	else if (s[size - 3] == '9') {
		s[size - 3] = '0';
		addThousand(s);
		return;
	}
	else
	{
		s[size - 3]++;
	}
}

void addTen(std::string& s) {
	int size = s.size();

	if (s[size - 2] == '2')
	{
		if (s[size - 3] == '0')
		{
			addHundred(s);
			return;
		}
		else if (s[size - 3] == '1')
		{
			s[size - 2] = '0';
			addHundred(s);
			return;
		}
		else if (s[size - 3] == '2')
		{
			s[size - 2]++;
		}
		else
		{
			addHundred(s);
		}
	}
	else if (s[size - 2] == '9')
	{
		s[size - 2] = '2';
		s[size - 3] = '3';
	}
	else {
		s[size - 2]++;
	}
}

void addOne(std::string& s) {
	int size = s.size();
	if (s[size - 1] == '1')
	{
		if (s[size - 2] == '0')
		{
			s[size - 1] = '0';
			s[size - 2] = '1';
			return;
		}
		else if (s[size - 2] == '1')
		{
			s[size - 1] = '2';
			return;
		}
		else
		{
			addTen(s);
			return;
		}
	}
	else if (s[size - 1] == '9')
	{
		s[size - 1] = '1';
		addTen(s);
	}
	else {
		s[size - 1]++;
	}
}


int main() {
	int n;
	std::cin >> n;


	std::string s = "2021";

	for (int i = 0; i < n - 1; i++)
	{
		addOne(s);
	}
	std::cout << s;
}

Test details

Test 1

Group: 1, 2, 3, 4

Verdict: ACCEPTED

input
10

correct output
20214

user output
20214

Test 2

Group: 1, 2, 3, 4

Verdict:

input
359

correct output
202661

user output
260261

Test 3

Group: 1, 2, 3, 4

Verdict:

input
392

correct output
202819

user output
270221

Test 4

Group: 1, 2, 3, 4

Verdict:

input
715

correct output
230721

user output
752021

Test 5

Group: 1, 2, 3, 4

Verdict:

input
278

correct output
202219

user output
240217

Test 6

Group: 1, 2, 3, 4

Verdict:

input
296

correct output
202318

user output
241021

Test 7

Group: 1, 2, 3, 4

Verdict:

input
427

correct output
203214

user output
280218

Test 8

Group: 1, 2, 3, 4

Verdict:

input
565

correct output
208212

user output
420921

Test 9

Group: 1, 2, 3, 4

Verdict:

input
289

correct output
202311

user output
240321

Test 10

Group: 1, 2, 3, 4

Verdict:

input
342

correct output
202581

user output
260021

Test 11

Group: 2, 3, 4

Verdict:

input
964486

correct output
182502018

user output
416727021

Test 12

Group: 2, 3, 4

Verdict:

input
110979

correct output
20296916

user output
62920721

Test 13

Group: 2, 3, 4

Verdict:

input
759149

correct output
126108721

user output
295810271

Test 14

Group: 2, 3, 4

Verdict:

input
234934

correct output
25023210

user output
133220211

Test 15

Group: 2, 3, 4

Verdict:

input
610310

correct output
120288133

user output
262036021

Test 16

Group: 2, 3, 4

Verdict:

input
956690

correct output
182027419

user output
411290821

Test 17

Group: 2, 3, 4

Verdict:

input
608459

correct output
120281827

user output
261590821

Test 18

Group: 2, 3, 4

Verdict:

input
944777

correct output
175260251

user output
402832021

Test 19

Group: 2, 3, 4

Verdict:

input
880780

correct output
152270421

user output
352660821

Test 20

Group: 2, 3, 4

Verdict:

input
418357

correct output
68202361

user output
219060216

Test 21

Group: 3, 4

Verdict:

input
713294506861

correct output
20099206371786

user output
(empty)

Test 22

Group: 3, 4

Verdict:

input
191431126351

correct output
4193020274761

user output
(empty)

Test 23

Group: 3, 4

Verdict:

input
778422318223

correct output
20247733120134

user output
(empty)

Test 24

Group: 3, 4

Verdict:

input
931090767075

correct output
20691282041612

user output
(empty)

Test 25

Group: 3, 4

Verdict:

input
198806129726

correct output
4275365802196

user output
(empty)

Test 26

Group: 3, 4

Verdict:

input
724343399444

correct output
20128443204610

user output
(empty)

Test 27

Group: 3, 4

Verdict:

input
105064053560

correct output
2350677231115

user output
(empty)

Test 28

Group: 3, 4

Verdict:

input
236866700902

correct output
5872395029521

user output
(empty)

Test 29

Group: 3, 4

Verdict:

input
696349488695

correct output
20034225603103

user output
(empty)

Test 30

Group: 3, 4

Verdict:

input
30929267826

correct output
1205256095901

user output
(empty)

Test 31

Group: 4

Verdict:

input
576379198814226780

correct output
4185251600926331891

user output
(empty)

Test 32

Group: 4

Verdict:

input
291698664446913099

correct output
2280132983584730156

user output
(empty)

Test 33

Group: 4

Verdict:

input
693146378550043345

correct output
5270258230724009910

user output
(empty)

Test 34

Group: 4

Verdict:

input
685982323362439932

correct output
5236052744416920782

user output
(empty)

Test 35

Group: 4

Verdict:

input
838865925103308874

correct output
6800200426815679149

user output
(empty)

Test 36

Group: 4

Verdict:

input
766426223219980635

correct output
6112960212822572807

user output
(empty)

Test 37

Group: 4

Verdict:

input
652970397451919317

correct output
4923188580186259818

user output
(empty)

Test 38

Group: 4

Verdict:

input
188458586650539464

correct output
1903508375720755921

user output
(empty)

Test 39

Group: 4

Verdict:

input
157646989818721527

correct output
1525038392797601315

user output
(empty)

Test 40

Group: 4

Verdict:

input
898606361978236778

correct output
7326676702587314407

user output
(empty)