您的位置:首页 > 其它

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: