52pts TLE求助
查看原帖
52pts TLE求助
1074084
asd890123楼主2024/4/30 21:33
#include <cstdio>
#include <cctype>
#include <algorithm>

namespace QuikIO{
    
    int p1,p2,p3;
    const int maxn = 1e6;
    char in[maxn],out[maxn];
    
    #define getchar() (p1 == p2 && (p1 = 0,p2 = fread(in,1,maxn,stdin)),p1 == p2 ? EOF : in[p1++])
    
    int read(){
        
        int x = 0;
        char ch = getchar();
        
        while (!isdigit(ch)) ch = getchar();
        while (isdigit(ch))
            x *= 10,x += ch - '0',ch = getchar();
        
        return x;
    }
    
}using QuikIO::read;

class num{public:int id,val;};

const int maxn = 8005;

bool cmp(num a,num b){
    
    if (a.val != b.val) return a.val < b.val;
    return a.id < b.id;
    
}

int main(){
    
    int n,q,op,x,u,ans;
    num a[maxn],b[maxn];
    
    n = read(),q = read();
    for (int i = 1;i <= n;i++) a[i].val = read(),a[i].id = i;
    while (q--){
        
        op = read(),x = read();
        if (op == 1) u = read(),a[x].val = u;
        else if (op == 2){
            
            for (int i = 1;i <= n;i++) b[i] = a[i];
            std::stable_sort(b + 1,b + 1 + n,cmp);
            for (int i = 1;i <= n;i++)
                if (b[i].val == a[x].val && b[i].id == a[x].id){
                    
                    printf("%d\n",i);
                    break;
                    
                }
            
        }
        
    }
    
    return 0;
}
2024/4/30 21:33
加载中...