sto_OwenLMZ2022_orz @ 2022-06-10 17:09:36
代码:
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
long long n,k,a[1000005];
ios::sync_with_stdio (false);
cin>>n>>k;
for(int i=0;i<n;i++) cin>>a[i];
nth_element(a,a+k,a+n);
cout<<a[k];
}
我这明明都写了ios::sync_with_stdio(false);
为啥还是TLE?
by Zvelig1205 @ 2022-06-10 17:19:43
吸氧
by _Virgo_ @ 2022-06-10 17:34:40
@极冬寒雪
试试快读?
by _Virgo_ @ 2022-06-10 17:35:43
@OwenLMZ2022
额。@错了。
by ivyjiao @ 2022-06-10 17:36:33
@OwenLMZ2022 数组小了。
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
long long n,k,a[5000005];
ios::sync_with_stdio (false);
cin>>n>>k;
for(int i=0;i<n;i++) cin>>a[i];
nth_element(a,a+k,a+n);
cout<<a[k];
}
by Windows_Update @ 2022-06-10 17:36:36
@OwenLMZ2022
你可能需要对输入卡一下常,可以去学习一下快速读入
(下面这个是读入输出都卡了常)
最主要的问题是,你的数组开小了,题面上写着
#include<iostream>
#include<algorithm>
using namespace std;
inline void read(long long &x){
x=0;
char ch=getchar_unlocked();
while(ch<'0'||ch>'9')
ch=getchar_unlocked();
while(ch>='0'&&ch<='9'){
x=(x<<1)+(x<<3)+(ch^48);
ch=getchar_unlocked();
}
return;
}
void print(long long x){
if(x>9)print(x/10);
putchar_unlocked(x%10+48);
}
int main(){
long long n,k,a[5000005];
read(n),read(k);
for(int i=0;i<n;++i) read(a[i]);
nth_element(a,a+k,a+n);
print(a[k]);
}
by sto_OwenLMZ2022_orz @ 2022-06-10 17:40:09
@Windows_Update 谢谢指点
by juruolht @ 2022-06-10 18:18:27
主页双帖?