把比較高的覆蓋比較低的。
注意:
用兩個點形成線段,所以在寫程式時,要保持這個觀點去寫。
ex: y[i] 存的高度為 i-1 和 i 形成的線段高度
#include <stdio.h>
#include <stdlib.h>
int main(void){
int y[12000]={0};
int l,h,r,maxx;
int i,temp;
maxx=0;
while(scanf("%d %d %d",&l,&h,&r)!=EOF){
for(i=l+1;i<=r;i++){
if(h>y[i])
y[i]=h;
if(r>maxx)maxx=r;
}
}
i=0;
while(y[i]==0)++i;
printf("%d %d",i-1,y[i]);
for(;i<=maxx;++i){
if(y[i]!=y[i+1])
printf(" %d %d",i,y[i+1]);
}
printf("\n");
return 0;
}
沒有留言:
張貼留言