Codeforces 740 B Alyona and flowers(前缀和)

来源:互联网 发布:海美迪q5四核 优化补丁 编辑:程序博客网 时间:2024/06/12 00:00

题目地址:http://codeforces.com/contest/740/problem/B
题意:我也看不懂,太长了,看别人博客发现就是求给定区间和的最大值(某些区间可以不选)
思路:求前缀和,然后计算每个区间和,如果和>0的话就加上。

#include <iostream>#include <cstring>#include <string>#include <queue>#include <vector>#include <map>#include <set>#include <stack>#include <cmath>#include <cstdio>#include <algorithm>#define LL long long #define N 110#define M 50010#define inf 0x3f3f3f3f3f3f3f3fusing namespace std;const LL mod = 1e9 + 7;const double eps = 1e-9;int main() {    cin.sync_with_stdio(false);    int n, m;    int a, b, c;    int num[N];    while (cin >> n >> m) {        num[0] = 0;        for (int i = 1; i <= n; i++) {            cin >> num[i];            num[i] += num[i - 1];        }        int sum = 0;        for (int i = 0; i < m; i++) {            cin >> a >> b;            c = num[b] - num[a - 1];            if (c > 0) {                sum += c;            }        }        cout << sum << endl;    }    return 0;}
阅读全文
0 0