#include <bits/stdc++.h>
using namespace std;
char s[5001];
int main()
{
int t,n,m;
scanf("%d",&t);
while(t--)
{
scanf("%s",s);
int len=strlen(s),i;
for( i=0;i<len;i++)
{
if(len==1&&s[0]=='0'){
printf("0\n");
break;
}
int j=i;
while(j<len)
{
if(s[j]=='+')break;
if(s[j]=='*')break;
if(s[j]=='0')break;
j++;
}
if(j==len)
{
for(int j=i;j<len;j++)
if(s[j]=='?')s[j]='1';
printf("%s\n",s);
break;
}
if((s[j]=='*'||s[j]=='+'))
if(j==0||(j>0&&(s[j-1]=='*'||s[j-1]=='+'))||(s[j+1]=='\0'||s[j+1]=='*'||s[j+1]=='+'))
{printf("IMPOSSIBLE\n");break;}
if(j>0&&s[j]=='0'&&(s[j-1]=='?'||(s[j-1]>'0'&&s[j-1]<='9')))
{
if(s[j-1]=='?')s[j-1]='1';
if(s[j+1]=='?'&&(s[j+2]=='*'||s[j+2]=='+'))s[j+1]='1';
}
if(s[j]=='0')
{
if(s[j+1]=='?'&&s[j+2]=='0'&&s[j-1]>'0'&&s[j-1]<='9')s[j+1]='1';
if((s[j-1]<'0'||s[j-1]>'9')&&s[j+1]=='0'){printf("IMPOSSIBLE\n");break;}
if((s[j-1]=='+'||s[j-1]=='*'||j==0)&&s[j+1]=='?'&&s[j+2]=='0')s[j+1]='+';
if((s[j-1]<'0'||s[j-1]>'9')&&(s[j+1]>'0'&&s[j+1]<='9')){printf("IMPOSSIBLE\n");break;}
if((j==0||s[j-1]<'0'||s[j-1]>'9')&&s[j+1]=='?'&&(s[j+2]=='*'||s[j+2]=='+'||(j+2)>=len)){printf("IMPOSSIBLE\n");break;}
if(s[j+1]=='?'&&s[j+2]=='?')
{s[j+1]='+'; s[j+2]='1';}
if((s[j-1]<'0'||s[j-1]>'9')&&s[j+1]=='?'&&(s[j+2]>'0'&&s[j+2]<='9'))
s[j+1]='+';
}
if(s[i]=='?')s[i]='1';
}
if(i==len)printf("%s\n",s);
}
return 0;
}
HDU 6342
猜你喜欢
转载自blog.csdn.net/qq_41603898/article/details/81346897
今日推荐
周排行