保龄球-题解

描述

耀自己好视力的借口——他看清远方瓶子的个数后从某个位置发球,这样就能打倒一定数量的瓶子。

1 OOO
2 OOOO
3 O
4 OO

如上图,每个“O”代表一个瓶子。如果 XW 想要打倒 3 个瓶子就在 1 位置发球,想要打倒 4 个瓶子就在 2 位置发球。

现在他想要打倒 m 个瓶子。他告诉你每个位置的瓶子数,请你给他一个发球位置。

输入描述

第一行包含一个正整数 n(<=105),表示位置数。

第二行包含 n 个正整数,第 i 个数。表示第 i 个位置的瓶子数,保证各个位置的瓶子数不同,且都小于等于105。

第三行包含一个正整数 Q,表示 XW 发球的次数,Q<=1000。

第四行至文件末尾,每行包含一个正整数 m,表示 XW 需要打倒 m 个瓶子, m<=105。

输出描述

共 Q 行。每行包含一个整数,第 i 行的整数表示 XW 第 i 次的发球位置。若无解,则输出 0 (XW有强迫症,必须恰好的个数)。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <bits/stdc++.h>
using namespace std;
map<int, int> m;
int main() {
int n, q;
cin >> n;
for (int i = 1; i <= n; i++) {
int cnt;
cin >> cnt;
m[cnt] = i;
}
cin >> q;
for (int i = 0; i < q; i++) {
int tmp;
cin >> tmp;
cout << m[tmp] << endl;
}
return 0;
}


保龄球-题解
https://chenxi-tijie.pages.dev/2025/07/保龄球-题解/
作者
chenxi
发布于
2025年7月5日
许可协议