第二个样例怎么算出来的qwq
查看原帖
第二个样例怎么算出来的qwq
1149038
wmoia楼主2025/1/16 16:07

代码奉上

#include<bits/stdc++.h>
#define int long long
using namespace std;
int ans = 0x3f3f3f3f;
int a[5], b[5];
bool va[5], vb[5];
char c;
void dfs(int x){
	if(va[0] == 1 && va[1] == 1 && va[2] == 1 && va[3] == 1 && vb[0] == 1 && vb[1] == 1 && vb[2] == 1){
		cout << x << endl;
		ans = min(ans, x);
		return;
	}
	for(int i = 0; i < 4; i++){
		for(int j = 0; j < 3; j++){
			if(!va[i] && !vb[i]){
				va[i] = 1;
				vb[i] = 1;
				if(b[i] == 1) dfs(x + a[i]);
				else dfs(x * a[i]);
				va[i] = 0;
				vb[i] = 0;
			}
		}
	}
}
signed main(){
	for(int i = 0; i < 4; i++) cin >> a[i];
	for(int i = 0; i < 3; i++){
		cin >> c;
		if(c == '+') b[i] = 1;
		else b[i] = 2;
	}
	for(int i = 0; i < 4; i++){
		va[i] = 1;
		dfs(a[i]);
		va[i] = 0;
	}
	cout << ans;
	return 0;
}
2025/1/16 16:07
加载中...