刘嘉柚 • 2个月前
这题怎么解,暴力+快读超时
TLE代码:
#include<bits/stdc++.h>
const int N=2*1e5;
typedef long long ll;
const int INF=0x7FFFFF;
using namespace std;
ll n,q,k[N],t[N],a[1005],maxn=-INF,minn=INF;
bool flag=0;
template<typename T>
inline void read(T &x){
bool f=1;x=0;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-') f=!f;ch=getchar();}
while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}
x=(f?x:-x);return;
}
int main(){
read(n),read(q);
for(int i=1;i<=n;i++){
read(a[i]);
}
for(int i=1;i<=q;i++){
read(t[i]),read(k[i]);
for(int j=1;j<=n;j++){
if(t[i]==1&&k[i]<a[j]){
flag=1;minn=min(a[j],minn);
}
else if(t[i]==2&&k[i]>a[j]){
flag=1;maxn=max(a[j],maxn);
}
}
if(flag&&t[i]==1) printf("%d\n",minn);
else if(flag&&t[i]==2) printf("%d\n",maxn);
else printf("-1\n");
flag=0;
}
return 0;
}
评论: