CSES - KILO 2016 1/5 - Results
Submission details
Task:ID
Sender:Pietari Kaskela
Submission time:2016-09-06 17:46:26 +0300
Language:C++
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.96 sdetails
#2ACCEPTED0.92 sdetails
#3ACCEPTED0.91 sdetails
#4ACCEPTED0.91 sdetails
#5ACCEPTED0.91 sdetails
#6ACCEPTED0.98 sdetails
#7ACCEPTED0.92 sdetails
#8ACCEPTED0.98 sdetails
#9ACCEPTED0.92 sdetails
#10ACCEPTED0.92 sdetails
#11ACCEPTED0.94 sdetails
#12ACCEPTED0.97 sdetails
#13ACCEPTED0.96 sdetails
#14ACCEPTED0.94 sdetails
#15ACCEPTED0.98 sdetails

Code

#include <bits/stdc++.h>

#define i64 long long
#define u64 unsigned long long
#define i32 int
#define u32 unsigned int

#define pii pair<int, int>
#define pll pair<long long, long long>

#define ld long double
#define defmod 1000000007

#define mati64(a,b) vector<vector<i64>>(a, vector<i64>(b, 0));
using namespace std;

int dif(string a, string b){
	int re = 0;
	for(int i = 0; i < 10; ++i){
		if(a[i] != b[i])
			re++;
	}
	return re;
}
int ldi(string s){
	int re = 0;
	for(int i = 0; i < 10; ++i){
		if(s[i] != '0')
			re++;
	}
	return re;
}
int main(){
	cin.sync_with_stdio(0);
	cin.tie(0);
	
	int n; cin >> n;
	vector<string> lol;
	lol.push_back("0000000000");
	vector<string> t[20];
	t[0].push_back(lol.back());
	for(int i = 1; i < 14500; ++i){
		stringstream ss;
		ss << i;
		string lel = ss.str();
		string ad = "";
		while(lel.length()+ad.length() < 10)
			ad+="0";
		lel = ad+lel;
		
		int di = ldi(lel);
		bool ok = true;
		for(auto f: t[di-1]){
			if(dif(f, lel) <= 1)
				ok = false;
		}
		for(auto f: t[di]){
			if(dif(f, lel) <= 1)
				ok = false;
		}
		if(ok){
			lol.push_back(lel);
			t[di].push_back(lel);
		}
	}

	cout << lol[n-1] << endl;
	return 0;
}

Test details

Test 1

Verdict: ACCEPTED

input
1

correct output
0000000000

user output
0000000000

Test 2

Verdict: ACCEPTED

input
2

correct output
0000000011

user output
0000000011

Test 3

Verdict: ACCEPTED

input
1024

correct output
0000014072

user output
0000014072

Test 4

Verdict: ACCEPTED

input
989

correct output
0000013543

user output
0000013543

Test 5

Verdict: ACCEPTED

input
197

correct output
0000002507

user output
0000002507

Test 6

Verdict: ACCEPTED

input
328

correct output
0000004271

user output
0000004271

Test 7

Verdict: ACCEPTED

input
967

correct output
0000013301

user output
0000013301

Test 8

Verdict: ACCEPTED

input
130

correct output
0000001616

user output
0000001616

Test 9

Verdict: ACCEPTED

input
170

correct output
0000002211

user output
0000002211

Test 10

Verdict: ACCEPTED

input
455

correct output
0000005984

user output
0000005984

Test 11

Verdict: ACCEPTED

input
100

correct output
0000001230

user output
0000001230

Test 12

Verdict: ACCEPTED

input
104

correct output
0000001274

user output
0000001274

Test 13

Verdict: ACCEPTED

input
415

correct output
0000005423

user output
0000005423

Test 14

Verdict: ACCEPTED

input
676

correct output
0000009393

user output
0000009393

Test 15

Verdict: ACCEPTED

input
455

correct output
0000005984

user output
0000005984