求助!一个wa且数据下下来后输出正常求调整
查看原帖
求助!一个wa且数据下下来后输出正常求调整
1359986
for_tangxin楼主2024/8/17 00:06
#include <bits/stdc++.h>  
using namespace std; 

int n , b[25] ;  
long long a[25] , k ;

int check_maxn(long long chall, long long mast){   

    string c = to_string(a[chall]) , m = to_string(a[mast]) ;  
    int al = c.size() , bl = m.size() ;  
    if(al==bl) for(int z=0 ; z<al ; z++)   {
        if(c[z] > m[z])return 1 ;  
        else if(c[z] < m[z]) return 0 ;  
    }  
    else if(al > bl)  
    {  
        for(int z=0 ; z<bl ; z++)   {
            if(c[z] > m[z])return 1 ;  
            else if(c[z] < m[z])return 0 ;  
        }  
        for(int z=1 ; z<=n ; z++)  { 
            if(!b[z] and z!=chall and z!=mast)  {
                string l = to_string(a[z]) ;  
                for(int w=bl ; w<al ; w++)   {
                    if(l[z-bl] > c[z])return 0 ;  
                    else if (l[z-bl] < c[z]) return 1 ;  
                }  
            }  
        }  
        return 1 ;  
    }  
    else if(al<bl)   {
        for(int z=0 ; z<al ; z++)   {
            if(c[z] > m[z])return 1 ;  
            else if(c[z] < m[z]) return 0 ;  
        }  
        for(int z=1 ; z<=n ; z++)  { 
            if(!b[z] and z!=chall and z!=mast)  {
                string l = to_string(a[z])   ;
                for(int w=al ; w<bl ; w++)   {
                    if(l[z-bl] > m[z])return 1 ;  
                    else if(l[z-bl] < m[z]) continue ;  
                }  
            }  
        }  
        return 0 ;  
    }  
    return 0 ;  
}  

int main()  
{

    cin >> n ;  
    for(int i=1 ; i<=n ; i++) cin >> a[i] ;
    int nu = n ;
    while(nu>0) {
        for(int i=1 ; i<=n ; i++) {
            if(b[i]==0){
                k = i ;
                break ;
            }
        }
        for(int j=1 ; j<=n ; j++){
        
            if(b[j] or j==k) continue ;
            if(check_maxn(j,k)) k = j ;
        }
        nu-- ;
        cout << a[k] ;
        b[k] = 1 ;
    }
	return 0;
}
2024/8/17 00:06
加载中...