UVA105

题目大意

有一座城市,这座城市的建筑物都是矩形的,每一栋建筑高为 hi,建筑的左右大小为 li,ri,现在要你画出这座城市的大致轮廓。

思路

仔细读题,不难发现,建筑最多只有 5000,并且坐标都小于 10000,所以,考虑使用暴力的思想,每一次记录一下坐标的最大高度,并且记录城市最边缘的那几个坐标,并且输出即可(但注意,记录时,ai=ai1 时,不应输出 ai)。

Code

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int maxn=1e5+10;
int l,h,r,a[maxn];
int maxx=INT_MIN,minn=INT_MAX;
signed main(){
	while(scanf("%d%d%d",&l,&h,&r)!=EOF){
		maxx=max(maxx,r);
		minn=min(minn,l);
		for(int i=l;i<r;++i){
			a[i]=max(a[i],h);
		}
	}
	for(int i=minn;i<maxx;++i){
		if(a[i]!=a[i-1])printf("%d %d ",i,a[i]);
	}
	printf("%d %d\n",maxx,0);
	return 0;
}

posted @   Lrj0709  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示