給你一些高樓大廈的坐標讓你求出它們的地平線,數據量較小,用數組直接存下每個點的高度即可。線段樹的解法表示還不會。
#include <stdio.h>
#include <string.h>
#define N 10005
int a[N];
int main()
{
//freopen("in", "r", stdin);
int n = 0;
int left, height, right, rightMost = 0;
while(~scanf("%d %d %d", &left, &height, &right))
{
for(int i = left; i < right; i++)
{
if(height > a[i]) a[i] = height;
}
if(right > rightMost) rightMost = right;
}
bool mk = 0;
for(int i = 1; i < rightMost; i++)
{
if(a[i] != a[i - 1]) printf("%d %d ", i, a[i]);
}
printf("%d %d\n", rightMost, 0);
return 0;
}