蒟蒻求助 84pts
查看原帖
蒟蒻求助 84pts
554705
Skystars楼主2021/10/26 13:03
#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>
#include <algorithm>
using namespace std;
struct node {
    int x, v;
};
inline int read() {
    int x = 0, f = 1;
    char c = getchar();
    while (c < '0' || c > '9') c = getchar();
    while (c >= '0' && c <= '9') {
        x = (x << 1) + (x << 3) + (c ^ 48);
        c = getchar();
    }
    return x * f;
}
bool cmp(node a, node b) {
    if (a.v != b.v) return a.v < b.v;
    return a.x < b.x;
}
node a[8005];
int x;
int main() {
    int n, q;
    n = read();
    q = read();
    for (int i = 1; i <= n; i++) a[i].v = read(), a[i].x = i;
    sort(a + 1, a + 1 + n, cmp);
    for (int i = 1; i <= q; i++) {
        int c;
        c = read();
        if (c == 1) {
            int v;
            x = read();
            v = read();
            for (int i = 1; i <= n; i++) {
                if (a[i].x == x) {
                    a[i].v = v;
                    break;
                }
            }
            sort(a + 1, a + 1 + n, cmp);
        }
        else if (c == 2) {
            x = read();
            for (int i = 1; i <= n; i++) {
                if (a[i].x == x) {
                    printf("%d\n", i);
                    break;
                }
            }
        }
    }
    return 0;
}
2021/10/26 13:03
加载中...