Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <cstdio>
- #include <cstdlib>
- #include <fstream>
- using namespace std;
- typedef long long int lli;
- typedef unsigned long long ulli;
- int getDigits(int n){
- if (n)
- return getDigits(n / 10) + 1;
- else
- return 0;
- }
- void f(){
- int n, cnt, digits, k_digits, powten, tmp, i;
- cin >> n;
- if (n < 10){
- cout << n - 1 << endl;
- return;
- }
- digits = getDigits(n);
- powten = 1;
- k_digits = 0;
- cnt = 0;
- for (i = 1; i < digits; i++)
- powten *= 10;
- i = powten;
- if (n % i == 0){
- if (n / i == 1)
- powten /= 10, digits--;
- cnt++;
- n--;
- }
- if (n / i == 1) cnt--;
- while (k_digits < digits || powten != 0){
- if (k_digits < digits){
- cnt += (k_digits - 1) * 10 + 9;
- k_digits++;
- }else{
- tmp = n / powten;
- cnt += tmp + (powten == 1 || tmp == 0 ? 0 : 1);
- n = n % powten;
- powten /= 10;
- }
- }
- cout << cnt << endl;
- }
- int main(){
- int t;
- cin >> t;
- for (int i = 0; i < t; i++)
- f();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement