done 3 sorting problems
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
// Digit Queries
|
||||
|
||||
#include<bits/stdc++.h>
|
||||
|
||||
using namespace std;
|
||||
using ll = long long;
|
||||
|
||||
|
||||
long long int power(ll base, ll exp)
|
||||
{
|
||||
if (exp == 0)
|
||||
return 1;
|
||||
else if (exp == 1)
|
||||
return base;
|
||||
else
|
||||
{
|
||||
long long int calc;
|
||||
if (exp % 2 == 0)
|
||||
{
|
||||
calc = power(base, exp/2);
|
||||
calc *= calc;
|
||||
}
|
||||
else
|
||||
{
|
||||
calc = base*power(base, exp-1);
|
||||
}
|
||||
return calc;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int main() {
|
||||
ll q; cin >> q;
|
||||
for (ll _{}; _ < q; _++) {
|
||||
ll k; cin >> k;
|
||||
if (k < 10) {cout << k << endl; continue;}
|
||||
ll number_length = 1;
|
||||
ll highest_idx = 0;
|
||||
while (highest_idx < k) {
|
||||
highest_idx += number_length * 9 * power(10, number_length-1);
|
||||
number_length++;
|
||||
}
|
||||
number_length--;
|
||||
ll pos = k - highest_idx + number_length * 9 * power(10, number_length - 1) - 1;
|
||||
ll number = pos / (number_length);
|
||||
number += power(10, number_length - 1);
|
||||
// cout << number << " " << number_length << endl;
|
||||
|
||||
ll decimal_pos = pos % number_length;
|
||||
ll out = (number / (power(10, number_length - decimal_pos - 1))) % 10 ;
|
||||
cout << out << endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user