2 条题解

  • 1
    @ 2025-7-24 10:41:33
    #include<bits/stdc++.h>
    #define int long long
    #define b bool
    using namespace std;
    const int N = 11;
    const int inf = 0x3f3f3f3f;
    int a[N];
    bool hqt[N];
    int sum;
    int n;
    int ans;
    bool dfs(int s , int ans){
    	if(s > sum){
    		return false;
    	}
    	
    	if(sum == s){
    		ans ++;
    		if(ans == 3){	
    			return true;
    		}
    		s = 0;
    	}
    	for(int i = 1 ; i <= n ; i ++){
    		if(hqt[i]){
    			continue;
    		}
    		hqt[i] = true;
    		if(dfs(s + a[i] , ans)){
    			return true;
    		}
    		hqt[i] = false;
    	}
    	return false;
    }
    signed main(){
    	freopen("triangle.in" , "r" , stdin);
    	freopen("triangle.out" , "w" , stdout);
    	cin >> n;
    	for(int i = 1 ; i <= n ; i ++){
    		cin >> a[i];
    		sum += a[i];
    	}
    	if(sum % 3 != 0){
    		cout << "no";
    		return 0;
    	}else{
    		sum /= 3;
    	}
    	if(dfs(0 , 0)){
    		cout << "yes";
    	}else{
    		cout << "no";
    	}
    	return 0;
    }
    
    
    

    信息

    ID
    548
    时间
    2000ms
    内存
    256MiB
    难度
    9
    标签
    (无)
    递交数
    470
    已通过
    25
    上传者