求助 90pts(原题放不了)

北京时间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;
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值