06 非诚勿扰
题目分析/解题思路
本题也比较简单,按照题目意思模拟即可。我们分步骤完成本题:
1. 我们将数组分为两部分:“前R个整数”和“后N-R个数”
2. 首先对于原题中:“对她见到的前R位男嘉宾,一个都不牵,只是以他们中最合适的那位作为一个标准”就是取数组第一部分的最大值记为val 。
3. 对于原题中:“从第R+1位男嘉宾开始,只要遇到一个比标准更合适的,就决定牵手”也就是取数组第二部分中第一个大于val的整数如果没有比val大的数答案就为0。
4. 对于原题中:“真正最适合她的男嘉宾”也就是整个数组中的最大值。
代码:
#includeusing namespace std; constexpr double e = 2.718; int main() { cin.tie(nullptr)->sync_with_stdio(false); int n; cin >> n; vector arr(n + 1); for (int i = 1; i <= n; ++i) cin >> arr[i]; int R = n / e, val = 0; for (int i = 1; i <= R; ++i) val = max(val, arr[i]); int x = 0; for (int i = R + 1; i <= n and !x; ++i) if (arr[i] > val and x == 0) x = i; int y = max_element(begin(arr), end(arr)) - begin(arr); cout << x << ' ' << y << 'n'; return 0; }



