题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=&problem=41&mosmsg=Submission+received+with+ID+13257619
题意:给定一些房子的左高右,求出各个房子高度变化的转折点
思路:直接暴力,记录下每个点的最大高度,然后for一遍输出即可。
代码:
#include <stdio.h>
#include <string.h>
const int N = 10005;
int l, h, r;
int vis[N];
int main() {
while (~scanf("%d%d%d", &l, &h, &r)) {
for (int i = l; i < r; i++) {
if (vis[i] < h)
vis[i] = h;
}
}
int bo = 0;
for (int i = 1; i <= 10000; i++) {
if (vis[i] == vis[i - 1]) continue;
if (bo++) printf(" ");
printf("%d %d", i, vis[i]);
}
printf("\n");
return 0;
}