北京时间2024/6/2 19:51,45
对了
Background
Special for beginners, ^_^
Description
画一幅股票的走势图,大家都知道,在每一个时间单元,股票的价格可能升(Rise), 降(Fall)或者是保持不变(Constant)。股票的走势用一系列的 R , F , C 来表示,作为交易 大厅的程序员,你只需要用 '/', '\' 和 '_' 描述,将图绘制出来。
Format
Input
一行,一个仅包含 R , F , C 的序列,分别表示在这个时间单元,股票升,降和保 持不变。序列长度不超过 50。
Output
输出股票的走势图,包含一个 x 轴,一个 y 轴。
x 轴的长度比图的长度大 1,在 y 轴和图的开始处也需要一个空格。每一行结尾, 不需要任何多余的空格。也不需要任何多余的行。
同时,x 轴必须在图的下方。
Samples
输入数据 1
RCRFCRFFCCRRC
输出数据 1
见下图
Limitation
1s, 1024KiB for each test case.
不知道为什么,90分,请各位大佬斧正(码风丑见谅)。
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s;
int i,j,len,up,un,now,b[200];
char a[200][200];
memset(a,'?',sizeof(a));
cin>>s;
len=s.size();
s+='F';
now=up=un=100;
for(i=0;i<len;++i)
{
if(s[i]=='R')
{
a[now][i+1]='/';
++now;
b[i+1]=now;
if(s[i+1]!='F')up=now>up?now:up;
}
else if(s[i]=='F')
{
--now;
a[now][i+1]='\\';
b[i+1]=now;
if(i!=len-1)un=now<un?now:un;
}
else a[now][i+1]='_',b[i+1]=now;
}
for(i=up;i>=un;--i)
{
cout<<"| ";
for(j=1;j<=len;++j)
if(a[i][j]!='?')cout<<a[i][j];
else cout<<' ';
cout<<'\n';
}
cout<<"+-";
for(i=0;i<=len;++i)
cout<<'-';
return 0;
}