Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<bits/stdc++.h>using namespace std;int n;vector<int> v,s;int dp[1011][8];int main(){ios_base::sync_with_stdio(false);cin.tie(0);cin>>n;v.resize(n+1);s.resize(n+1);for(int i=1;i<=n;i++){cin>>v[i];string tmp;int val=0;cin>>tmp;if(tmp.find('A')<=2)val+=4;if(tmp.find('B')<=2)val+=2;if(tmp.find('C')<=2)val+=1;s[i]=val;}for(int i=0;i<=n;i++)for(int j=1;j<8;j++)dp[i][j]=99999999;dp[0][0]=0;for(int i=1;i<=n;i++){for(int j=0;j<8;j++){dp[i][j|s[i]]=min(dp[i-1][j]+v[i],dp[i][j|s[i]]);