您的位置:首页 > 其它

codeforces--2014/1/18--A. Ksenia and Pan Scales

2014-01-18 08:13 513 查看
A. Ksenia and Pan Scales

time limit per test
1 second

memory limit per test
256 megabytes

input
standard input

output
standard output

Ksenia has ordinary pan scales and several weights of an equal mass. Ksenia has already put some weights on the scales, while other weights are untouched. Ksenia is now wondering whether it is possible to put all the remaining weights on the scales so that
the scales were in equilibrium.

The scales is in equilibrium if the total sum of weights on the left pan is equal to the total sum of weights on the right pan.

Input
The first line has a non-empty sequence of characters describing the scales. In this sequence, an uppercase English letter indicates a weight, and the symbol "|" indicates the delimiter (the character occurs in the
sequence exactly once). All weights that are recorded in the sequence before the delimiter are initially on the left pan of the scale. All weights that are recorded in the sequence after the delimiter are initially on the right pan of the scale.

The second line contains a non-empty sequence containing uppercase English letters. Each letter indicates a weight which is not used yet.

It is guaranteed that all the English letters in the input data are different. It is guaranteed that the input does not contain any extra characters.

Output
If you cannot put all the weights on the scales so that the scales were in equilibrium, print string "Impossible". Otherwise, print the description of the resulting scales, copy the format of the input.

If there are multiple answers, print any of them.

Sample test(s)

Input
AC|T
L


Output
AC|TL


Input
|ABC
XYZ


Output
XYZ|ABC


Input
W|T
F


Output
Impossible


Input
ABC|
D


Output
Impossible
#include <stdio.h>
#include <string.h>
int main()
{
int l = 0 , r = 0 , ll , i , sum ;
char str1[100] , str2[100] ;
scanf("%s%s", str1,str2);
l = strlen(str1);
for(i = 0 ; str1[i] != '\0' ; i++)
if(str1[i]=='|') break;
r = l - i - 1;
l = i ;
ll = strlen(str2);
if(r - l > ll || l - r > ll || (l + r + ll)%2==1)
printf("Impossible\n");
else
{
sum = (l+r+ll)/2;
for(i = 0 ; i < (sum - l) ; i++)
printf("%c", str2[i]);
for(i = 0 ; i < l ; i++)
printf("%c", str1[i]);
printf("|");
for(i = l + 1 ; str1[i] != '\0' ; i++)
printf("%c", str1[i]);
for(i = sum-l ; str2[i] != '\0' ; i++)
printf("%c", str2[i]);
printf("\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: