CSES - Datatähti 2018 alku - Results
Submission details
Task:Kyselyt
Sender:Tannhäuser
Submission time:2017-10-02 00:29:39 +0300
Language:C++
Status:READY
Result:100
Feedback
groupverdictscore
#1ACCEPTED12
#2ACCEPTED25
#3ACCEPTED63
Test results
testverdicttimegroup
#1ACCEPTED0.08 s1details
#2ACCEPTED0.07 s2details
#3ACCEPTED0.08 s3details

Code

#include <bits/stdc++.h>

#define N (1<<19)
#define ll long long
#define ld long double
#define M 1000000007
#define INF 0x5ADFACE5
#define LINF 0x51DEEFFEC7C0DECALL
#define pii pair<int, int>
#define pll pair<long long, long long>
#define F first
#define S second

using namespace std;

int main () {
	int n;
	cin>>n;
	string lol = "";
	int qaq = 1;
	while (lol.length() < 1000000) {
		lol += to_string(qaq);
		qaq++;
	}
	for (int i = 0; i < n; i++) {
		ll k;
		cin>>k;
		ll c = 0;
		ll m = 1;
		ll x = 1;
		if (k <= 1000000) {
			cout<<lol[k - 1]<<endl;
			continue;
		}
		while (c + 9 * m * x < k) {
			c += 9 * m;
			k -= 9 * m * x;
			m *= 10;
			x++;
		}
		k--;
		m += k / x;
		string s = to_string(m);
		cout<<s[k % x]<<endl;
	}
}

Test details

Test 1

Group: 1

Verdict: ACCEPTED

input
1000
582
214
723
273
...

correct output
0
1
7
7
6
...

user output
0
1
7
7
6
...
Truncated

Test 2

Group: 2

Verdict: ACCEPTED

input
1000
615664
916441
627600
279508
...

correct output
1
2
3
2
2
...

user output
1
2
3
2
2
...
Truncated

Test 3

Group: 3

Verdict: ACCEPTED

input
1000
672274832941907421
260504693279721732
646999966092970935
100853063389774434
...

correct output
7
2
2
0
9
...

user output
7
2
2
0
9
...
Truncated