40pts求助
查看原帖
40pts求助
410729
XiangyuHu楼主2021/11/13 14:09
#include <stdio.h>
// #define print() for (int i = 1; i <= n; i ++) printf("%d %d, ", l[i].num, l[i].i); printf("\n")

const int maxN = 8005;

struct node {
    int i, num;
};
node l[8005];
int n, Q;
int x, y, z, p;

int main() {
    scanf("%d%d", &n, &Q);
    for (int i = 1; i <= n; i ++) {
        scanf("%d", &l[i].num);
        for (int j = 1; j <= i; j ++) {
            if (l[j].num <= l[i].num) l[i].i ++;
            else l[j].i ++;
        }
    }
    // print();
    for (int i = 1; i <= Q; i ++) {
        scanf("%d%d", &x, &y);
        if (x == 2) {
            printf("%d\n", l[y].i);
        } else {
            scanf("%d", &z);
            p = l[y].num;
            l[y].num = z;
            l[y].i = 0;
            for (int j = 1; j <= n; j ++) {
                if (l[j].num <= l[y].num) l[y].i ++;
                if (j == y) continue;
                if (z >= l[j].num && l[j].num >= p) l[j].i --;
                if (z <= l[j].num && l[j].num <= p) l[j].i ++;
            }
            // print();
        }
    }
    return 0;
}

本地测试大样例3过不了,求调

2021/11/13 14:09
加载中...