比赛 SBOI2022暑假快乐赛① 评测结果 AWAAAAWTTT
题目名称 孙伯符降临 最终得分 50
用户昵称 cb 运行时间 3.905 s
代码语言 C++ 内存使用 4.35 MiB
提交时间 2022-06-25 11:10:29
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
int n;
int ans[100005] = {0};

struct node {
    int a, b, x;
} p[100005];

//int c[100005];

bool cmp (node r1, node r2) {
    if (r1.a == r2.a) {
        return r1.b > r2.b;
    }
    else return r1.a > r2.a;
}

//void fenzhi (int l, int r) {
//    if (l >= r) return;
//    int mid = (l + r) << 1;
//    fenzhi (l, mid);
//    fenzhi (mid + 1, r);
//    int i = l, j = mid + 1, k = l;
//    while (i <= mid && j <= r) {
//        if (p[i].b <= p[i + 1].b) {
//            c[k ++] = p[i ++].b;
//        }
//        else {
//            
//        }
//    }
//}

int main () {
    freopen ("sunbofu.in", "r", stdin);
    freopen ("sunbofu.out", "w", stdout);
    scanf ("%d", &n);
    for (int q = 1; q <= n; ++q) {
        scanf ("%d %d", &p[q].a, &p[q].b);
        p[q].x = q;
    }
    sort (p + 1, p + n + 1, cmp);
//    for (int q = 1; q <= n; ++q) {
//        printf ("%d %d\n", p[q].a, p[q].b);
//        
//    }
    for (int q = 1; q <= n; ++q) {
        for (int w = q + 1; w <= n; ++w) {
            if (p[w].b == p[q].b && p[w].a == p[q].a) continue;
            else if (p[w].b <= p[q].b && p[w].a <= p[q].a) ans[p[q].x] ++;
        }
    }
    for (int q = 1; q <= n; ++q) printf ("%d\n", ans[q]);
    return 0;
}