2452: 【入门】【P1597】语句解析

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:10 解决:6

题目描述

一串长度不超过 lns="http://www.w3.org/1998/Math/MathML">255 的 PASCAL 语言代码,只有 lns="http://www.w3.org/1998/Math/MathML">,, 三个变量,而且只有赋值语句,赋值只能是一个一位的数字或一个变量,每条赋值语句的格式是 [变量]:=[变量或一位整数];。未赋值的变量值为 lns="http://www.w3.org/1998/Math/MathML">0 输出 lns="http://www.w3.org/1998/Math/MathML">,, 的值。

输入

一串符合语法的 PASCAL 语言,只有 lns="http://www.w3.org/1998/Math/MathML">,, 三个变量,而且只有赋值语句,赋值只能是一个一位的数字或一个变量,未赋值的变量值为 lns="http://www.w3.org/1998/Math/MathML">0

输出

输出 lns="http://www.w3.org/1998/Math/MathML">,, 最终的值。

样例输入 复制

a:=3;b:=4;c:=5;

样例输出 复制

3 4 5

提示

输入的 PASCAL 语言长度不超过 lns="http://www.w3.org/1998/Math/MathML">255


#include<iostream>
#include<string>
#include<algorithm>
using namespace std;

int main(){
	string s;
	int a=0,b=0,c=0;
	cin>>s;	
	int i=0;
	while(i<s.length()){
		if (s[i]=='a'){
			if (s[i+3]=='a') a=a;
			else if (s[i+3]=='b') a=b; 
			else if (s[i+3]=='c') a=c; 
			else if (s[i+3]>='0' && s[i+3]<='9') a=s[i+3]-'0';
			i+=5;
			continue;
		}
		else if (s[i]=='b'){
			if (s[i+3]=='a') b=a;
			else if (s[i+3]=='b') b=b; 
			else if (s[i+3]=='c') b=c; 
			else if (s[i+3]>='0' && s[i+3]<='9') b=s[i+3]-'0';
			i+=5;
		}		
		else if (s[i]=='c'){
			if (s[i+3]=='a') c=a;
			else if (s[i+3]=='b') c=b; 
			else if (s[i+3]=='c') c=c; 
			else if (s[i+3]>='0' && s[i+3]<='9') c=s[i+3]-'0';
			i+=5;
		}		
	}
	cout<<a<<" "<<b<<" "<<c;
	return 0;
}