最高的牛

AcWing-101-最高的牛open in new window

分析

见《进阶指南》第24页。

实现

#include <iostream>
using namespace std;

const int N = 10010;
int c[N], d[N];

int main () {
    int n, p, h, m;
    scanf("%d%d%d%d", &n, &p, &h, &m);
    for (int i = 1, a, b; i <= m; ++ i) {
        scanf("%d%d", &a, &b); // a < b
        -- d[a + 1];
        ++ d[b];
    }
    for (int i = 1; i <= n; ++ i) {
        c[i] = c[i - 1] + d[i];
        printf("%d\n", c[i] + h);
    }
    return 0;
}
最后修改于: