#include using namespace std; setnumbers; int numberOfOccurrences[100050000]; int intSize(int a) { int ret = 0; while (a > 0) { ret++; a /= 10; } return ret; } int estDiff(int a, int b) { if (a == b) return 0; if (b < a) swap(a, b); if (a == 0) return intSize(b); int ret = 0; while (a != b) { b /= 10; ret++; if (a > b) { a /= 10; ret++; } } return ret; } int main() { freopen("hipsters.in", "r", stdin); freopen("hipsters.out", "w", stdout); int q; scanf("%d", &q); int t, n; for (int z = 0; z < q; z++) { scanf("%d%d", &t, &n); if (t == 1) { int answer = 0; for (set::iterator it = numbers.begin(); it != numbers.end(); it++) { ///cout << "*it = " << *it << ", numberOfOcc[" << *it << "] = " << numberOfOccurrences[*it] << ", estDiff(" << *it << ", " << n << ") = " << estDiff(*it, n) << ", answer = " << answer << endl; answer += numberOfOccurrences[*it] * estDiff(n, *it); } printf("%d\n", answer); } else if (t == 2) { numberOfOccurrences[n]++; if (numberOfOccurrences[n] == 1) numbers.insert(n); } else { numberOfOccurrences[n]--; if (numberOfOccurrences[n] == 0) numbers.erase(n); } } fclose(stdin); fclose(stdout); return 0; }