Codeforces 435C Cardiogram
2016-07-26 19:58
218 查看
题意:
给你n个数a[i],要你模拟出一座每列高a[i]的山。
思路:
题目说了所有的a[i]和不会超过1000,那么这就简单了,开个3000*3000的数组(因为这些山的高度是有落差的),然后从r=1500行开始模拟就可以啦。注意这里空白的地方要输出空格(坑)。
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int MAX=1005;
int n,a[MAX];
char mp[MAX*3][MAX*3];
int main(){
scanf("%d",&n);
int r=1500,j=1,Max=1500,Min=1500;
memset(mp,' ',sizeof(mp));
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
if(i%2){
int k;
for(k=r;k<r+a[i];k++){
mp[k][j++]='/';
}
r=k-1;
}
else{
int k;
for(k=r;k>r-a[i];k--){
mp[k][j++]='\\';
}
r=k+1;
}
Max=max(Max,r);
Min=min(Min,r);
}
for(int i=Max;i>=Min;i--){
for(int c=1;c<j;c++){
printf("%c",mp[i][c]);
}
printf("\n");
}
return 0;
}
给你n个数a[i],要你模拟出一座每列高a[i]的山。
思路:
题目说了所有的a[i]和不会超过1000,那么这就简单了,开个3000*3000的数组(因为这些山的高度是有落差的),然后从r=1500行开始模拟就可以啦。注意这里空白的地方要输出空格(坑)。
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int MAX=1005;
int n,a[MAX];
char mp[MAX*3][MAX*3];
int main(){
scanf("%d",&n);
int r=1500,j=1,Max=1500,Min=1500;
memset(mp,' ',sizeof(mp));
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
if(i%2){
int k;
for(k=r;k<r+a[i];k++){
mp[k][j++]='/';
}
r=k-1;
}
else{
int k;
for(k=r;k>r-a[i];k--){
mp[k][j++]='\\';
}
r=k+1;
}
Max=max(Max,r);
Min=min(Min,r);
}
for(int i=Max;i>=Min;i--){
for(int c=1;c<j;c++){
printf("%c",mp[i][c]);
}
printf("\n");
}
return 0;
}
相关文章推荐
- java工具类开发之日期工具类DateUtils和读取属性配置文件工具类PropertiesUtils
- Hibernate的注解many-to-one
- 【CodeForces】[448D]Multiplication Table
- 网络流-Dinic算法详解与模板
- java的21个技术点,你造吗
- 写模态对话框的问题:运用this.index 为元素添加事件
- magedu Linux 运维学习的第三天
- JDBC连接数据库
- 关于历史命令和一些简单的快捷键的初识;以及man帮助
- 自动释放池什么时候创建,什么时候销毁?
- AsyncTask和Handler对比
- [SCU4442] Party [2015 Sichuan Province Contest Final G]
- Java数据类型小结
- hdu 2089 不要62 数位dp
- 翻山越岭上uvaoj
- C#预处理指令
- js注意事项11
- Linux 文件权限笔记
- Android加载动画系列—— CircularJumpLoadingAnim
- dom4j CURD