1/2AC+1/2TLE
查看原帖
1/2AC+1/2TLE
1401899
aikepudelizhi楼主2024/10/1 18:21
#include<iostream>
using namespace std;
void insertSort(int array[],int n){
	for(int i=0;i<n;i++){
		int insertValue=array[i];
		int j=i-1;
		for(;(j>=0)&&(insertValue<array[j]);j--){
			array[j+1]=array[j];
		}
		array[j+1]=insertValue;
	}
}
int findSortedIndex(int arr[], int size, int original_index){ 
    int element = arr[original_index];  
    int sorted_arr[10000000];
    for (int i = 0; i < size; ++i) {  
        sorted_arr[i] = arr[i];
    }  
    insertSort(sorted_arr, size);
    int new_indices[10000000];
    int count = 0;
    for (int i = 0; i < size; ++i) {  
        if (sorted_arr[i] == element) {  
            new_indices[count] = i;
            count++;  
        }  
    }  
    int original_count = 0;  
    for (int i = 0; i <= original_index; ++i) {  
        if (arr[i] == element) {  
            original_count++;  
        }  
    }  
    return new_indices[original_count - 1];
}
int main(){
    int n,q,a[1000000];
    cin>>n>>q;
    for(int i=0;i<n;i++){
        cin>>a[i];
    }
    for(int i=0;i<q;i++){
        int b;
        cin>>b;
        if(b==1){
            int x,v;
            cin>>x>>v;
            a[x-1]=v;
        }
        else if(b==2){
            int x;
            cin>>x;
            cout<<findSortedIndex(a,n,x-1)+1<<endl;
        }
    }
    return 0;
}
2024/10/1 18:21
加载中...