题解 P5595 【【XR-4】歌唱比赛】

StudyingFather

2019-10-20 23:14:18

Solution

显然 Z 只能出现在字符串最后几位(因为是自低位到高位比较,因此一旦平局局面打破就不可能再出现平局)。 利用这一性质可以先判断出无解的情况。 合法解的构造方法就简单得多了:对于 X 领先的位,令小 X 在这一位上的数字比小 Y 大即可,反之同理。 ```cpp #include <cstdio> #include <cstring> char s[1000005],s1[1000005],s2[1000005]; int main() { scanf("%s",s); int len=strlen(s); bool flag=true; for(int i=len-1;i>=0;i--) { if(s[i]!='Z')flag=false; if(s[i]=='Z'&&!flag) { puts("-1"); return 0; } if(s[i]=='Z')s1[i]=s2[i]='0'; else if(s[i]=='X')s1[i]='9',s2[i]='0'; else s1[i]='0',s2[i]='9'; } puts(s1); puts(s2); return 0; } ```