Submission #1261883

#TimeUsernameProblemLanguageResultExecution timeMemory
1261883abulatTrol (COCI19_trol)C++20
50 / 50
0 ms328 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
int32_t main() {
  int Q;
  cin >> Q;
  while (Q--) {
    int l, r;
    cin >> l >> r;
    int start;
    int end;
    int sum = 0;
    int pref[10] = {0, 1, 3, 6, 10, 15, 21, 28, 36, 45};
    int rev[9] = {0, 8, 15, 21, 26, 30, 33, 35, 36};
    if (l / 9 == r / 9) {
      while (l <= r) {
        if (l % 9 == 0)
          sum += 9;
        else
          sum += l % 9;
        l++;
      }
      cout << sum << '\n';
      continue;
    }

    if (l % 9 == 0) {
      // cout << "how\n";

      start = l;
    } else {
      start = l + (9 - (l % 9));
      start = (l / 9) * 9 + 9;
      // cout << "rev[start-l] start l " << start << ", " << l << '\n';
      sum += rev[(start - l)];
    }
    end = r - (r % 9);
    // end = (r / 9) * 9;
    sum += pref[(r - end)];
    if (start == end) {
      sum += 9;

    } else {
      // cout << (end / 9) << " " << (start / 9) << " haha\n";
      sum += ((end / 9) - (start / 9)) * 45;
      sum += 9;
    }

    cout << sum << '\n';
    // cout << start << " " << end << "\n";
  }
}
#Verdict Execution timeMemoryGrader output
Fetching results...