Language: C++

#include<bits/stdc++.h>
#define cmin(a,b) (a>(b)?a=(b),1:0)
#define cmax(a,b) (a<(b)?a=(b),1:0)
#define dmin(a,b) ((a)<(b)?(a):(b))
#define dmax(a,b) ((a)>(b)?(a):(b))
namespace io
{
	int F()
	{
		 int F=1,n=0;
		 char ch;
		 while((ch=getchar())!='-'&&(ch<'0'||ch>'9'));
		 ch=='-'?F=0:n=ch-'0';
		 while((ch=getchar())>='0'&&ch<='9')n=n*10+ch-'0';
		 return F?n:-n;
	}
	long long G()
	{
		 long long F=1,n=0;
		 char ch;
		 while((ch=getchar())!='-'&&(ch<'0'||ch>'9'));
		 ch=='-'?F=0:n=ch-'0';
		 while((ch=getchar())>='0'&&ch<='9')n=n*10+ch-'0';
		 return F?n:-n;
	}
}
int R(int l,int r)
{
	return (rand()<<15|rand())%(r-l+1)+l;
}
const int M=998244353;
char s[3333]; 
bool b[4444][4444]；
int f[4444][4444];
int sub[5][2]={{'3',0},{'4','3'},{0,'4'}};
int main()
{
	scanf("%s",s+1);
	int n=strlen(s+1);
	int R=0,B=0;
	for(register int i=1;i<=n;++i)
	{
		if(s[i]=='0')R+=2;
		if(s[i]=='1')++R,++B;
		if(s[i]=='2')B+=2;
	}
	int x=0,y=0;
	while(1)
	{
		int pl=0;
		for(register int i=1;i<=n;++i)
			if(s[i]=='0'||s[i]=='2'){pl=i;break;}
		if(pl==0)break;
		if(s[pl]=='0')
		{
			b[x][y+pl]=1;
			s[1]=sub[s[1]-'0'][0];
			++x;
		}
		else
		{
			b[x+pl][y]=1;
			s[1]=sub[s[1]-'0'][1];
			++y;
		}
		for(register int i=1;i<n;++i)
		{
			if(s[i]=='3')
			{
				if(s[i+1]!='0'&&s[i+1]!='3')s[i]='1',s[i+1]=sub[s[i+1]-'0'][1];
					else s[i]='0',s[i+1]=sub[s[i+1]-'0'][0];
			}
			else
			{
				if(s[i+1]!='2'&&s[i+1]!='4')s[i]='1',s[i+1]=sub[s[i+1]-'0'][0];
					else s[i]='2',s[i+1]=sub[s[i+1]-'0'][1];
			}
		}
		if(!s[n])--n;
	}
	f[0][0]=1;
	for(register int i=0;i<=R;++i)
		for(register int j=0;j<=B;++j)
			if(b[i][j]==0)
			{
				if(i)f[i][j]=(f[i][j]+f[i-1][j])%M;
				if(j)f[i][j]=(f[i][j]+f[i][j-1])%M;
			}
	printf("%d\n",f[R][B]);
	return 0;
}


Compiler output:
a.cc:33:19: error: expected initializer before '\U0000ff1b'
   33 | bool b[4444][4444]；
      |                   ^~
a.cc: In function 'int main()':
a.cc:41:26: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   41 |         for(register int i=1;i<=n;++i)
      |                          ^
a.cc:51:34: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   51 |                 for(register int i=1;i<=n;++i)
      |                                  ^
a.cc:56:25: error: 'b' was not declared in this scope
   56 |                         b[x][y+pl]=1;
      |                         ^
a.cc:62:25: error: 'b' was not declared in this scope
   62 |                         b[x+pl][y]=1;
      |                         ^
a.cc:66:34: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   66 |                 for(register int i=1;i<n;++i)
      |                                  ^
a.cc:81:9: error: 'f' was not declared in this scope
   81 |         f[0][0]=1;
      |         ^
a.cc:82:26: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   82 |         for(register int i=0;i<=R;++i)
      |                          ^
a.cc:83:34: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   83 |                 for(register int j=0;j<=B;++j)
      |                                  ^
a.cc:84:28: error: 'b' was not declared in this scope
   84 |                         if(b[i][j]==0)
      |                            ^