P8042求助
查看原帖
P8042求助
529253
Stream_For_Dream楼主2022/6/21 18:04

题目在这里

[CCC 2022 J3] Harp Tuning

题目描述

现在有一个竖琴,像其他乐器一样,它可以走调。

一个有音乐倾向的计算机科学学生写了一个聪明的计算机程序来帮助竖琴调音。

这个程序程序分析了竖琴产生的声音,并提供指令来修复每根失调的弦。

每条指令包括一组琴弦,它们是应该收紧还是松开,以及转多少圈。

例如,单行的 AFB+8HC4AFB+8HC-4 实际上包含两条调谐指令。

AFB+8AFB+8HC4HC-4

第一条指令表示竖琴的 AFBA、F、B 弦应收紧 88 圈。

第二条指令表示,竖琴的 HCH、C 弦应该松开 44 圈。

你的工作是把单行的调音指令,变得更容易阅读。

输入格式

一行,输入一个字符串 ss,具体意义见题目描述。

输出格式

输出若干行。

对于每个指令,第一行输出琴弦的大写字母;如果原指令中是 +,输出 tighten,否则输出 loosen;最后输出转数 xx(用空格间隔开)。

样例 #1

样例输入 #1

AFB+8HC-4

样例输出 #1

AFB tighten 8
HC loosen 4

样例 #2

样例输入 #2

AFB+8SC-4H-2GDPE+9

样例输出 #2

AFB tighten 8
SC loosen 4
H loosen 2
GDPE tighten 9

提示

对于全部数据:1s1000,1x999991\le s\le 1000,1\le x\le 99999

错误代码如下(共八个点,A了七个)

#include<iostream>
#include<string>
using namespace std;
int main(){
	string s;
	cin>>s;
	for(int i=0;i<s.size();i++){
		if(s[i]=='+' || s[i]=='-' || s[i]=='.'){
			if(s[i]=='+'){
				cout<<' '<<"tighten"<<' ';
				continue;
			}
			else if(s[i]=='-'){
				cout<<' '<<"loosen"<<' ';
				continue;
			}
		}
		if(s[i]>='A' && s[i]<='Z' ){
			cout<<s[i];
		}
		else if(s[i]>='1' && s[i]<='9'){
			if(s[i+1]<'1' || s[i+1]>'9')
				cout<<s[i]<<endl ;
			else if(s[i+1]>='1' && s[i+1]<='9'){
				cout<<s[i];
				continue;
			}
		}
	}
	return 0;
}
2022/6/21 18:04
加载中...