1 条题解
-
0
C :
#include<stdio.h> #include<math.h> int main() { int i,j,k,n,m,t,c,a[1000],b[1000]; scanf("%d",&t); for(i=0;i<t;i++) { scanf("%d%d",&n,&m); for(j=0;j<n;j++) { scanf("%d",&a[j]); k=a[j]-m; b[j]=abs(k); } for(c=0;c<n-1;c++) for(j=c+1;j<n;j++) { if(b[c]>b[j]) { k=a[c]; a[c]=a[j]; a[j]=k; k=b[c]; b[c]=b[j]; b[j]=k; } if(b[c]==b[j]&&a[c]>a[j]) { k=a[c]; a[c]=a[j]; a[j]=k; } } for(j=0;j<n;j++) { if(j!=n-1) printf("%d ",a[j]); else printf("%d\n",a[j]); } } return 0; }C++ :
#include <cstdio> #include <cstring> #include <cmath> using namespace std ; int num[10000] ; int abs( int a ) { if( a < 0 ) return -a ; return a ; } int main() { int n ; scanf("%d" ,&n ) ; while( n -- ) { int a , b ; scanf("%d%d" , &a , &b ) ; for( int i = 0 ; i < a ; i ++ ) { scanf("%d" , &num[i] ) ; } for( int i = 1 ; i < a ; i ++ ) { for( int j = 0 ; j < a - i ; j ++ ) { if( abs( num[j] - b ) > abs( num[j+1] - b ) ) { int tmp = num[j] ; num[j] = num[j+1] ; num[j+1] = tmp ; } else if( abs( num[j] - b ) == abs( num[j+1] - b ) && num[j] > num[j+1] ) { int tmp = num[j] ; num[j] = num[j+1] ; num[j+1] = tmp ; } } } for( int j = 0 ; j < a ; j ++ ) { if( j == 0 ) printf("%d" , num[j] ) ; else printf(" %d" , num[j] ) ; } printf("\n") ; } return 0 ; }
- 1
信息
- ID
- 967
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者