done 3 sorting problems

This commit is contained in:
2024-06-03 16:57:59 +02:00
parent cf617f6dfa
commit c817cf7f3c
23 changed files with 85 additions and 1 deletions

View File

@@ -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;
}