aboutsummaryrefslogtreecommitdiff
path: root/01_introductory_problems/digit_queries_2431.cpp
blob: 28c4a2fef1d80454241de0b11cb457893cde68e3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>

int f(long long k) {
	long long n{1}, p{1}, d{1}, q{9};
	while (p + d*q <= k) {
		n += q;
		p += d * q;
		d++;
		q *= 10;
	}
	long long x{(k-p) / d + n};
	long long m{(k-p) % d};
	for (long long j = 0; j < d-m-1; j++)
		x /= (long long)10;
	return x % (long long)10;
}

int main() {
	long long k;
	std::cin >> k;
	while (std::cin >> k)
		std::cout << f(k) << "\n";
}

Generated with cgit - Back to sebastiano.tronto.net