⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 4881777_tle.cpp

📁 部分PKU上的源码
💻 CPP
字号:
#include<iostream>
using namespace std;
int v[54];
bool change[54];
bool chu[54];
char po[110][30];
int n;
void run()
{
	int now=1;
	int t,temp;
	char ic;
	memset(change,false,sizeof(change));
	memset(chu,false,sizeof(chu));
	while(1)
	{
		int j=0;
		if(po[now][1]==' '||po[now][1]=='=')
		{
			 ic=po[now][j];
			if(ic>='A'&&ic<='Z') t=ic-'A'+27;
			else t=ic-'a';
			if(!chu[t]){cout<<now<<" "<<2<<endl;now++;}
			else
			{
			j=1;
			while(po[now][j]==' ')j++;
			j++;
			while(po[now][j]==' ')j++;
			temp=0;
			while(po[now][j]){temp*=10;temp+=po[now][j]-'0';j++;}
			v[t]=temp;
			now++;
			}

		}
		else
		{
		switch(po[now][0])
		{
		case 'G':
			j=4;
			while(po[now][j]==' ')j++;
			if(po[now][j]>='0'&&po[now][j]<='9')
			{
				int temp=0;
				while(po[now][j]){temp*=10;temp+=po[now][j]-'0';}
				now=temp;
			}
			else
			{
				 ic=po[now][j];
				if(ic>='A'&&ic<='Z') t=ic-'A'+27;
				else t=ic-'a';
				if(!chu[t]) {cout<<now<<" "<<2<<endl;now++;}
				else
				{
				j++;
				while(po[now][j]==' ')j++;
				temp=0;
				while(po[now][j]){temp*=10;temp+=po[now][j]-'0';j++;}
				if(v[t]>0) now=temp;
				else now++;
				change[t]=true;
				}
			}
			break;
		case 'D':j++;
			if(po[now][j]=='e')
			{
				j=4;
				while(po[now][j]==' ')j++;
				 ic=po[now][j];
				if(ic>='A'&&ic<='Z') t=ic-'A'+27;
				else t=ic-'a';
				if(!chu[t]) {cout<<now<<" "<<2<<endl;now++;}
				else 
				{v[t]--;change[t]=true;now++;}
			}
			else
			{
				j=4;
				while(po[now][j]==' ')j++;
				 ic=po[now][j];
				if(ic>='A'&&ic<='Z') t=ic-'A'+27;
				else t=ic-'a';
				if(!change[t]&&chu[t]){cout<<now<<" "<<1<<endl;now++;}
				else {change[t]=false;chu[t]=true;v[t]=0;now++;}
			}
			break;
		case 'I':
			j=4;
			while(po[now][j]==' ')j++;
			 ic=po[now][j];
			if(ic>='A'&&ic<='Z') t=ic-'A'+27;
			else t=ic-'a';
			if(!chu[t]) {cout<<now<<" "<<2<<endl;now++;}
			else 
			{v[t]++;change[t]=true;now++;}
			break;
		case 'E': return;
		}//END SWITCH
		}//end else
	}
}
int main()
{
	int test,i;
	cin>>test;
	for(int count=1;count<=test;count++)
	{
		cout<<count<<endl;
		cin>>n;
		for(i=1;i<=n;i++) {getchar();scanf("%[^\n]",po[i]);}
		run();
	}
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -