Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <algorithm>
- #include <vector>
- using namespace std;
- int iteration = 0;
- int const max_number_of_stars = 15000;
- int n; // number of stars
- int amount_on_levels[max_number_of_stars + 1][20];
- vector<int> t;
- int tn;
- void init(int nn)
- {
- tn = nn;
- t.assign(tn, 0);
- }
- int sum(int r)
- {
- int result = 0;
- for (; r >= 0; r = (r & (r + 1)) - 1)
- result += t[r];
- return result;
- }
- void inc(int i, int delta)
- {
- for (; i < tn; i = (i | (i + 1)))
- t[i] += delta;
- }
- int sum(int l, int r)
- {
- return sum(r) - sum(l - 1);
- }
- void init(vector<int> a)
- {
- init((int)a.size());
- for (unsigned i = 0; i < a.size(); i++)
- inc(i, a[i]);
- }
- int main() {
- iostream::sync_with_stdio(false);
- while (cin >> n) {
- init(32001);
- for (int i = 0; i < n; ++i) {
- int x, y;
- cin >> x >> y;
- amount_on_levels[sum(x)][iteration] += 1;
- inc(x, 1);
- }
- for (int i = 0; i < n; ++i) {
- cout << amount_on_levels[i][iteration] << endl;
- }
- ++iteration;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement