wa1-14
查看原帖
wa1-14
678507
shenming101楼主2024/10/14 17:06
#include<bits/stdc++.h>
#define int long long
#define INF 1e18+5
using namespace std;
int v[10];
string s;
int minx=INF;
int sum;
void judge(int a,int b,int c,int d,int e,string m){
	int ans1=a*10000+b*1000+c*100+d*10+e;
	int ans2=v[a]+v[b]+v[c]+v[d]+v[e];
	if(s.find(m,0)!=-1&&ans1<=ans2){
		int x=ans1+sum-ans2;
		minx=min(minx,x);
	}else if(s.find(m,0)!=-1&&ans1>ans2){
		int x=sum;
		minx=min(minx,x);
	}
	return;
}
signed main(){
	ios::sync_with_stdio(0);
	cin.tie(0),cout.tie(0);
	int c;
	cin >> c;
	int t;
	cin >> t;
	while(t--){
		sum=0;
		minx=INF;
		//s.clear();
		cin >> s;
		for(int i=1;i<=9;i++){
			cin >> v[i];
		}
		int n=s.size();
		for(int i=0;i<n;i++){
			sum+=v[s[i]-'0'];
		}
		for(int a=0;a<=9;a++){
			for(int b=0;b<=9;b++){
				for(int c=0;c<=9;c++){
					for(int d=0;d<=9;d++){
						for(int e=0;e<=9;e++){
							string m;
							m[0]=a+'0';
							m[1]=b+'0';
							m[2]=c+'0';
							m[3]=d+'0';
							m[4]=e+'0';
							judge(a,b,c,d,e,m);
						}
					}
				}
			}
		}
		cout << minx << '\n';
	}
	return 0;
}
2024/10/14 17:06
加载中...