| Task: | Kyselyt |
| Sender: | Tannhäuser |
| Submission time: | 2017-10-02 00:29:39 +0300 |
| Language: | C++ |
| Status: | READY |
| Result: | 100 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 12 |
| #2 | ACCEPTED | 25 |
| #3 | ACCEPTED | 63 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.08 s | 1 | details |
| #2 | ACCEPTED | 0.07 s | 2 | details |
| #3 | ACCEPTED | 0.08 s | 3 | details |
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 |
