题目大意
给定若干个字符串,每个字符串有一个价格。在所有包含一个”2021“的字符串中(2021不一定按顺序,也不一定连续),求最便宜的字符串的编号。若不存在输出 0 0 0
解题思路
统计 0 , 1 , 2 0,1,2 0,1,2 三个数的个数即可判断是否含有 ”2021“ 。然后更新最小值以及答案编号即可
参考代码
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin >> n;
int min_p = 1e9;
int ans = 0;
for(int i = 1; i <= n; i ++){
int price;
vector<int> cnt(10, 0);
string s;
cin >> price >> s;
for(char i: s)cnt[i - '0'] ++;
if(cnt[0] and cnt[1] and cnt[2] >= 2 and price < min_p){
min_p = price;
ans = i;
}
}
cout << ans;
return 0;
}