大毒瘤,无人能调
  • 板块学术版
  • 楼主imeye
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/11/2 13:38
  • 上次更新2023/10/27 04:31:59
查看原帖
大毒瘤,无人能调
735507
imeye楼主2022/11/2 13:38

P7910 RT

#include <iostream>
#include <algorithm>

typedef long long ll;
const ll maxn = 2e5 + 7;
using namespace std;
struct fsz {
    ll cur;
    ll idx;
};
ll n, m;
fsz a[maxn];

bool cmp(fsz b, fsz c) {
    return b.cur < c.cur;
}

int main() {
    cin >> n >> m;
    for (ll i = 1; i <= n; i++) {
        cin >> a[i].cur;
        a[i].idx = i;
    }
    sort(a + 1, a + 1 + n, cmp);
    for (ll i = 1; i <= m; i++) {
        ll p;
        cin >> p;
        if (p == 1) {
            ll x, v, k = 0;
            cin >> x >> v;
            for (ll j = 1; j <= n; j++) {
                if (a[j].idx == x) {
                    k = j;
                    break;
                }
            }
            a[k].cur=v;
            if (a[k].cur > a[k + 1].cur) {
                for (ll j = k; j < n; j++) {
                    if (a[j].cur > a[j + 1].cur) swap(a[j], a[j + 1]);
                    else break;
                }
            }
            if(a[k].cur < a[k - 1].cur)
                for (ll j = k; j > 1; j--) {
                    if (a[j].cur < a[j - 1].cur) swap(a[j], a[j-1]);
                    else break;
                }
        }
        else {
            ll u, k=0;
            cin >> u;
            for (ll j = 1; j <= n; j++) {
                if (a[j].idx == u) {
                    k = j;
                    break;
                }
            }
            cout << k<<endl;
        }
    }
    return 0;
}
2022/11/2 13:38
加载中...