#include <algorithm>
#include <cstdint>
#include <iostream>
#include <vector>
using namespace std;
int main() {
long long n, k;
cin >> n >> k;
vector<long long> w(n);
for (int i = 0; i < n; i++) {
cin >> w[i];
}
string s;
cin >> s;
for (int i = 0; i < n; i++) {
if (s[i] == '1') w[i] = w[i] * 95;
else w[i] = w[i] * 100;
}
sort(w.begin(), w.end());
int ans = 0;
k = k * 100;
if (k >= w[0]) {
for (int i = 0; i < n; i++) {
k = k - w[i];
if (k >= 0) {
ans++;
} else {
break;
}
}
}
cout << ans << endl;
return 0;
}
C++ 常见数字类型的范围
以下是 C++ 中常见数字类型的范围,用 10 的幂次表示:
- int(32 位有符号整数):范围:-2,147,483,648 到 2,147,483,647近似:-2.147 × 10^9 到 2.147 × 10^9
- long long(64 位有符号整数):范围:-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807近似:-9.223 × 10^18 到 9.223 × 10^18
- unsigned int(32 位无符号整数):范围:0 到 4,294,967,295近似:0 到 4.295 × 10^9
- unsigned long long(64 位无符号整数):范围:0 到 18,446,744,073,709,551,615近似:0 到 1.845 × 10^19
- short(16 位有符号整数):范围:-32,768 到 32,767近似:-3.2768 × 10^4 到 3.2767 × 10^4
- unsigned short(16 位无符号整数):范围:0 到 65,535近似:0 到 6.5535 × 10^4
- float(32 位浮点数):范围:约 -3.4 × 10^38 到 3.4 × 10^38精度:约 7 位十进制数字
- double(64 位浮点数):范围:约 -1.8 × 10^308 到 1.8 × 10^308精度:约 15-16 位十进制数字
注意
- 对于代码,建议使用 long long 替代 int 来避免溢出,因为 k 和 w[i] 乘以 100 后可能超过 2 × 10^9。

京公网安备 11010502036488号