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

📄 1114.cpp

📁 这些是我到目前在PKU上做出的题目
💻 CPP
字号:
#include <iostream.h>
#include <string.h>

char a[2][105];
int aa[2][677],n,i,j,la,lb,p1,p2;
bool ok;

void add2(int st,int en,int nnn,int ll)
{
	int i,p,n,nn,p1,p2,t;
	i=st;nn=0;
	if (a[ll][i]>'9' || a[ll][i]<'0')
		nn=1;
	else
		while (a[ll][i]>='0' && a[ll][i]<='9')
		{
			nn=nn*10+a[ll][i]-'0';
			i++;
		}
	p=-1;
	while (i<=en)
	{
		if (a[ll][i]>='A' && a[ll][i]<='Z')
		{
			if (p!=-1)
			{
				aa[ll][p]+=nn*nnn;
				p=-1;
			}
			p=a[ll][i]-'A';
		}
		if (a[ll][i]>='a' && a[ll][i]<='z')
			p=p*26+a[ll][i]-'a';
		if (a[ll][i]>='0' && a[ll][i]<='9')
		{
			n=0;
			while (a[ll][i]>='0' && a[ll][i]<='9' && i<=en)
			{
				n=n*10+a[ll][i]-'0';
				i++;
			}
			aa[ll][p]+=n*nn*nnn;i--;p=-1;
		}
		if (a[ll][i]=='(')
		{
			if (p!=-1)
			{
				aa[ll][p]+=nn*nnn;
				p=-1;
			}
			p1=i+1;t=0;
			i++;
			while (a[ll][i]!=')' || t!=0)
			{
				if (a[ll][i]=='(')
					t++;
				if (a[ll][i]==')')
					t--;
				i++;
			}
			p2=i-1;i++;
			if (a[ll][i]>='0' && a[ll][i]<='9')
			{
				n=0;
				while (a[ll][i]>='0' && a[ll][i]<='9' && i<=en)
				{
					n=n*10+a[ll][i]-'0';
					i++;
				}
			}
			else
				n=1;
			add2(p1,p2,n*nn*nnn,ll);
			i--;
		}
		i++;
	}
	if (p!=-1)
		aa[ll][p]+=nn*nnn;
}

void add1(int st,int en,int ll)
{
	int i,p,n,nn,p1,p2,t;
	i=st;nn=0;
	if (a[ll][i]>'9' || a[ll][i]<'0')
		nn=1;
	else
		while (a[ll][i]>='0' && a[ll][i]<='9')
		{
			nn=nn*10+a[ll][i]-'0';
			i++;
		}
	p=-1;
	while (i<=en)
	{
		if (a[ll][i]>='A' && a[ll][i]<='Z')
		{
			if (p!=-1)
			{
				aa[ll][p]+=nn;
				p=-1;
			}
			p=a[ll][i]-'A';
		}
		if (a[ll][i]>='a' && a[ll][i]<='z')
			p=p*26+a[ll][i]-'a';
		if (a[ll][i]>='0' && a[ll][i]<='9')
		{
			n=0;
			while (a[ll][i]>='0' && a[ll][i]<='9' && i<=en)
			{
				n=n*10+a[ll][i]-'0';
				i++;
			}
			aa[ll][p]+=n*nn;i--;p=-1;
		}
		if (a[ll][i]=='(')
		{
			if (p!=-1)
			{
				aa[ll][p]+=nn;
				p=-1;
			}
			p1=i+1;t=0;
			i++;
			while (a[ll][i]!=')' || t!=0)
			{
				if (a[ll][i]=='(')
					t++;
				if (a[ll][i]==')')
					t--;
				i++;
			}
			p2=i-1;i++;
			if (a[ll][i]>='0' && a[ll][i]<='9')
			{
				n=0;
				while (a[ll][i]>='0' && a[ll][i]<='9' && i<=en)
				{
					n=n*10+a[ll][i]-'0';
					i++;
				}
			}
			else
				n=1;
			add2(p1,p2,n*nn,ll);
			i--;
		}
		i++;
	}
	if (p!=-1)
		aa[ll][p]+=nn;
}


int main()
{
	cin>>a[0];
	la=strlen(a[0])-1;
	p1=0;p2=0;
	while (p2<=la)
	{
		while (p2<=la && a[0][p2]!='+')
			p2++;
		add1(p1,p2-1,0);
		p1=p2+1;p2++;
	}
	cin>>n;
	for (i=1;i<=n;i++)
	{
		for (j=0;j<=676;j++)
			aa[1][j]=0;
		cin>>a[1];
		lb=strlen(a[1])-1;
		p1=0;p2=0;
		while (p2<=lb)
		{
			while (p2<=lb && a[1][p2]!='+')
				p2++;
			add1(p1,p2-1,1);
			p1=p2+1;p2++;
		}
		ok=1;
		for (j=0;j<=676;j++)
			if (aa[0][j]!=aa[1][j])
			{
				ok=0;
				break;
			}
		if (ok)
			cout<<a[0]<<"=="<<a[1]<<"\n";
		else
			cout<<a[0]<<"!="<<a[1]<<"\n";
	}
	return 0;
}

⌨️ 快捷键说明

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