题解:B4192 [海淀区小学组 2023] 分数线

· · 题解

题目传送门

解题思路

一道前缀和加判断题目。

通过前缀和求出分数小于 i 的人数。
接着枚举每一个分数线,若在范围内,则输出并结束程序。
否则无解,输出零。

细节

#define int long long
signed main() {

AC CODE

#include <bits/stdc++.h>
#define int long long
using namespace std;
int c[100010], ans[100010];
signed main() {
    int m;
    cin >> m;
    for (int i = 1; i <= m; i++) { //前缀和
        cin >> c[i];
        ans[i] = ans[i - 1] + c[i];
    }
    int x, y;
    cin >> x >> y;
    for (int i = 2; i <= m; i++) { //判断
        if (ans[i - 1] >= x && ans[i - 1] <= y && ans[m] - ans[i - 1] >= x && ans[m] - ans[i - 1] <= y) {
            cout << i;
            return 0;
        }
    }
    cout << 0;
    return 0;
}

为保持洛谷的良好学习习惯,请勿抄袭。
千万别抄袭哦。
管理大大辛苦了,各位大佬给蒟蒻点个赞呗。