2 条题解

  • 2
    @ 2026-1-29 15:40:36
    #include<bits/stdc++.h>
    using namespace std;
    const int N=1e3+10;
    int a[N],n,best;
    void turn7(int x,int a[],int &len){
    	len=0;
    	while(x!=0){
    		a[++len]=x%7;
    		x/=7;
    	}
    }
    int getvalue(int x,int y){
    	int a[7],b[7],c[7],len1,len2,len;
    	memset(a,0,sizeof(a));
    	memset(b,0,sizeof(b));
    	memset(c,0,sizeof(c));
    	turn7(x,a,len1);
    	turn7(y,b,len2);
    	len=max(len1,len2);
    	for(int i=1;i<=len;i++){
    		if(a[i]!=b[i])
    		    c[i]=1;
    	}
    	int n=0;
    	for(int i=len;i>=1;i--){
    		n=n*2+c[i];
    	}
    	return n;
    }
    int main()
    {
    	cin>>n;
    	for(int i=1;i<=n;i++){
    		cin>>a[i];
    	}
    	for(int i=1;i<n;i++){
    		for(int j=i+1;j<=n;j++){
    		    int v=getvalue(a[i],a[j]);
    		    if(abs(v-123)<abs(best-123)){
    			    best=v;
    		    }
    		    if(best==v&&v<best){
    			    best=v;
    		    }
    	    }
        }
    	cout<<best;
    	return 0;
    }
    
    

    信息

    ID
    2513
    时间
    1000ms
    内存
    256MiB
    难度
    7
    标签
    递交数
    114
    已通过
    29
    上传者