标签:operator tar name 技术 个数 inf int userinfo copy
3 2 1
1 2 4
3 2 1
1 2 3
1
1
3
定义一个结构体包含 x,id,dis dis 为到 m 的距离 然后排序,按距离小的排在前面, 距离相同 时编号小排前
输出前 x 个人即可,再判断第 x+1 个人的距离是否和第 x 个人一样,是的话输出,反 之不输出
1 #include <bits/stdc++.h> 2 #include<iostream> 3 #include<algorithm> 4 #include<cstdlib> 5 #include<cstring> 6 #include<cstdio> 7 8 //#define DEBUG 9 #define RI register int 10 using namespace std; 11 typedef long long ll; 12 //typedef __int128 lll; 13 const int N=100000+10; 14 const int MOD=1e9+7; 15 const double PI = acos(-1.0); 16 const double EXP = 1E-8; 17 const int INF = 0x3f3f3f3f; 18 int t,n,m,k,q; 19 struct node{ 20 int id,x; 21 bool operator <(const node &S)const{ 22 if(x==S.x) 23 return id<S.id; 24 return x<S.x; 25 } 26 }a[N]; 27 int main() 28 { 29 30 while(scanf("%d%d%d",&n,&m,&k)!=EOF){ 31 for(int i=1;i<=n;i++){ 32 scanf("%d",&t); 33 a[i].id=i; 34 a[i].x=abs(t-m); 35 } 36 sort(a+1,a+n+1); 37 int cnt=0; 38 t=1; 39 while(cnt<k){ 40 if(a[t].x!=0){ 41 //cnt++; 42 q=a[t].x; 43 while(q==a[t].x&&cnt<=k){ 44 cout << a[t].id << endl; 45 t++; 46 cnt++; 47 } 48 }else{ 49 t++; 50 } 51 52 } 53 } 54 55 //cout << "Hello world!" << endl; 56 return 0; 57 }
标签:operator tar name 技术 个数 inf int userinfo copy
原文地址:https://www.cnblogs.com/DWVictor/p/10202525.html