题意:
输入一个正整数N(<=1e5),接着输入一行N个各不相同的正整数。输出可以作为快速排序枢纽点的个数并升序输出这些点的值。
trick:
测试点2格式错误原因:当答案为0时,需要换行两次??。。。。。这是为何
AAAAAccepted code:
1 #define HAVE_STRUCT_TIMESPEC 2 #include<bits/stdc++.h> 3 using namespace std; 4 int a[100007]; 5 int b[100007]; 6 int vis[100007]; 7 int main(){ 8 ios::sync_with_stdio(false); 9 cin.tie(NULL); 10 cout.tie(NULL); 11 int n; 12 cin>>n; 13 for(int i=1;i<=n;++i) 14 cin>>a[i]; 15 int cnt=0; 16 int mx=0,mn=2e9; 17 for(int i=1;i<=n;++i){ 18 if(a[i]>mx) 19 ++vis[i]; 20 mx=max(mx,a[i]); 21 } 22 for(int i=n;i;--i){ 23 if(a[i]<mn) 24 ++vis[i]; 25 mn=min(mn,a[i]); 26 } 27 for(int i=1;i<=n;++i) 28 if(vis[i]==2) 29 b[++cnt]=a[i]; 30 cout<<cnt<<"\n"; 31 if(cnt){ 32 for(int i=1;i<=cnt;++i){ 33 cout<<b[i]; 34 if(i<cnt) 35 cout<<" "; 36 } 37 } 38 if(cnt==0) 39 cout<<"\n"; 40 return 0; 41 }
原文地址:https://www.cnblogs.com/ldudxy/p/11972161.html
时间: 2024-11-01 12:10:37