fork download
  1. #include <bits/stdc++.h> // NeOWami
  2. using namespace std;
  3.  
  4. #define ft first
  5. #define sc second
  6. const int N = 21;
  7. int val[N];
  8. void solve() {
  9. string s; cin >> s;
  10. if (s.size() < 2) return cout << stoi(s) - 1 << "\n", void();
  11.  
  12. int ans = val[(int)s.size() - 1];
  13. bool fullzero = 1;
  14. for (int i = (int)s.size() - 1; i > 0; i--) if (s[i] != '0') fullzero = 0;
  15. if (fullzero) {
  16. if (s[0] >= '2') {
  17. ans += 10 * ((int)s.size() - 1);
  18. if (s[0] >= '3') ans += s[0] - '1';
  19. }
  20. }
  21. else {
  22. for (int i = 1; i < s.size(); i++) if (s[i] != '0') {
  23. ans += (s[i] - '0');
  24. if (i && i != (int)s.size() - 1) ans++;
  25. }
  26. if (s[0] != '1') {
  27. ans += s[0] - '0';
  28. for (int i = 1; i < (int)s.size() - 1; i++) if (s[i] == '1') {
  29. ans--;
  30. break;
  31. }
  32. }
  33. }
  34. cout << ans << "\n";
  35. }
  36. signed main() {
  37. cin.tie(NULL)->sync_with_stdio(false);
  38. if(ifstream("vosnum.inp")) {
  39. freopen("vosnum.inp", "r", stdin);
  40. freopen("vosnum.out", "w", stdout);
  41. }
  42. for (int i = 1; i < N; i++) val[i] = val[i - 1] + 9 * i + i - 1;
  43. int tt; cin >> tt;
  44. while(tt--) {
  45. solve();
  46. }
  47. return 0;
  48. }
Success #stdin #stdout 0.01s 5320KB
stdin
Standard input is empty
stdout
Standard output is empty