1 条题解

  • 0
    @ 2025-9-9 23:46:01

    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
    上传者