1.水果集市
#include <iostream>
using namespace std;
int main()
{
int n, s, sum = 0;
cin >> n >> s;
for (int i = 1; i <= n; i++)
{
int x, y;
cin >> x >> y;
int t = s / x * y;
sum += s - s/x*x;
s = t;
}
cout << sum + s << endl;
return 0;
}
2.火眼金睛
#include <iostream>
#include <map>
using namespace std;
int main()
{
string s, t;
int n, k;
map<string, int> cnt;
cin >> s >> n >> k;
for (int i = 0; i + k - 1 < s.size(); i++)
cnt[s.substr(i, k)]++;
while (n--)
{
cin >> t;
cout << cnt[t] << endl;
}
return 0;
}
3.炸弹猴
#include <iostream>
#include <queue>
using namespace std;
int n, m, a[300010], cnt[30010];
queue<int> q;
int main()
{
cin >> n >> m;
for (int i = 1; i <= m; i++) cin >> a[i];
for (int i = 1; i <= n; i++) q.push(i);
for (int i = 1; i <= m; i++)
{
int x = q.front();
q.pop();
if (a[i] < 2) q.push(x);
if (a[i] == 1) cnt[x]++;
if (a[i] == 2 && cnt[x])
{
q.push(x);
cnt[x]--;
i--;
}
}
cout << q.front() << endl;
return 0;
}
4.清虚幻境大危机!
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int n, m, q, a[110][5010], s[5010];
int main()
{
cin >> n >> m;
memset(s, 0x3f, sizeof s);
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++) cin >> a[i][j];
sort(a[i] + 1, a[i] + m + 1, greater<int>());
for (int j = 1; j <= m; j++)
{
a[i][j] += a[i][j - 1];
s[j] = min(s[j], a[i][j]);
}
}
cin >> q;
while (q--)
{
int p;
cin >> p;
int pos = lower_bound(s + 1, s + m + 1, p) - s;
if (pos > m) cout << -1 << endl;
else cout << pos << endl;
}
return 0;
}