站外题求助
  • 板块题目总版
  • 楼主jzm_2024
  • 当前回复8
  • 已保存回复8
  • 发布时间2024/10/5 14:54
  • 上次更新2024/10/5 16:15:09
查看原帖
站外题求助
1384623
jzm_2024楼主2024/10/5 14:54

是这道题

#include"bits/stdc++.h"
using namespace std;
int read(){//快读 
	int ret=0,f=1;char ch=getchar();
	while(!isdigit(ch)){if(ch=='-'){f=-f;}ch=getchar();}
	while(isdigit(ch)){ret=(ret<<3)+(ret<<1)+(ch&15);ch=getchar();}
	return ret*f;
}
int n,a[100001],m;
int main(){
	n=read();//读入数据 
	m=read();//读入数据 
	for(int i=1;i<=n;++i) a[i]=read();//读入数据 
	for(int i=1;i<=m;++i){
		int l=read(),r=read(),k=read(),minn;//读入数据 
		bool flag[100001]={0};//初始化 
		for(int j=1;j<=k;++j){//最后一次就是第k小的数字 
			minn=100001;//保存最小值的变量,初始要赋值为极大值,这里取了数据范围大一点的值 
			for(int _=l;_<=r;++_){//寻找最小值 
				if(flag[a[_]]) continue;//如果被标记了,就略过 
    			minn=min(a[_],minn);//寻找最小值 
		    }
		    flag[minn]=1;//标记当前最小值 
		}
		printf("%d\n",minn);//输出 
    }
    return 0;
}

有木有dalao帮我看一下怎么优化

2024/10/5 14:54
加载中...