| Task: | Kyselyt |
| Sender: | Shrike |
| Submission time: | 2017-10-03 13:42:31 +0300 |
| Language: | C++ |
| Status: | READY |
| Result: | 0 |
| group | verdict | score |
|---|---|---|
| #1 | WRONG ANSWER | 0 |
| #2 | WRONG ANSWER | 0 |
| #3 | WRONG ANSWER | 0 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | WRONG ANSWER | 0.05 s | 1 | details |
| #2 | WRONG ANSWER | 0.05 s | 2 | details |
| #3 | WRONG ANSWER | 0.05 s | 3 | details |
Code
#include <iostream>
#include <cmath>
#include <cstring>
#include <cstdlib>
#include <cstdlib>
using namespace std;
typedef long long ll;
ll
decade(ll n, ll *sum)
{
*sum = 0;
for (int i = 1; i < 1000000; i++) {
if (*sum + i*9*pow(10.0, i-1) > n)
return i;
else
*sum += i*9*pow(10.0, i-1);
}
return 0;
}
ll
nnum(ll dec, ll nth)
{
return (ll)(pow(10.0, (int)dec-1)-1+nth);
}
int dig(int a, int b) {
return (int)(a / pow(10.0, b)) % 10;
}
int
main(int argc, char **argv)
{
ios_base::sync_with_stdio(0);
cin.tie(0);
int q;
cin >> q;
ll qs[q];
for (int i = 0; i < q; i++) {
cin >> qs[i];
if (qs[i] < 10) {
cout << qs[i] << "\n";
} else {
ll inth, nth, dec, s, sm, num;
dec = decade(qs[i], &s);
sm = qs[i] - s;
nth = (ll)ceil((double)sm/(double)dec);
num = nnum(dec, nth);
inth = (sm-1) % dec;
cout << dig(num, inth) << "\n";
}
}
return 0;
}
Test details
Test 1
Group: 1
Verdict: WRONG ANSWER
| input |
|---|
| 1000 582 214 723 273 ... |
| correct output |
|---|
| 0 1 7 7 6 ... |
| user output |
|---|
| 2 8 2 1 1 ... Truncated |
Test 2
Group: 2
Verdict: WRONG ANSWER
| input |
|---|
| 1000 615664 916441 627600 279508 ... |
| correct output |
|---|
| 1 2 3 2 2 ... |
| user output |
|---|
| 9 1 1 8 3 ... Truncated |
Test 3
Group: 3
Verdict: WRONG ANSWER
| input |
|---|
| 1000 672274832941907421 260504693279721732 646999966092970935 100853063389774434 ... |
| correct output |
|---|
| 7 2 2 0 9 ... |
| user output |
|---|
| 0 5 0 0 -9 ... Truncated |
