aboutsummaryrefslogtreecommitdiff
path: root/01_introductory_problems/digit_queries_2431.cpp
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano@tronto.net>2026-07-06 19:08:08 +0200
committerSebastiano Tronto <sebastiano@tronto.net>2026-07-06 19:08:08 +0200
commit96254947699986c59f0dc63d69fd4b76bd3ed43e (patch)
tree6c4dca945d7f7427c48be234d827fe4d33be02c5 /01_introductory_problems/digit_queries_2431.cpp
downloadcses-96254947699986c59f0dc63d69fd4b76bd3ed43e.tar.gz
cses-96254947699986c59f0dc63d69fd4b76bd3ed43e.zip
Initial commit
Diffstat (limited to '01_introductory_problems/digit_queries_2431.cpp')
-rw-r--r--01_introductory_problems/digit_queries_2431.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/01_introductory_problems/digit_queries_2431.cpp b/01_introductory_problems/digit_queries_2431.cpp
new file mode 100644
index 0000000..28c4a2f
--- /dev/null
+++ b/01_introductory_problems/digit_queries_2431.cpp
@@ -0,0 +1,23 @@
1#include <iostream>
2
3int f(long long k) {
4 long long n{1}, p{1}, d{1}, q{9};
5 while (p + d*q <= k) {
6 n += q;
7 p += d * q;
8 d++;
9 q *= 10;
10 }
11 long long x{(k-p) / d + n};
12 long long m{(k-p) % d};
13 for (long long j = 0; j < d-m-1; j++)
14 x /= (long long)10;
15 return x % (long long)10;
16}
17
18int main() {
19 long long k;
20 std::cin >> k;
21 while (std::cin >> k)
22 std::cout << f(k) << "\n";
23}

Generated with cgit - Back to sebastiano.tronto.net