Codeforces 382A

Ksenia and Pan Scales

Problem Description

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 Input

AC|T
L

Sample Output

AC|TL

源代码:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
    char a[30],b[30];
    int l,r,i,j;
    int lena,lenb;
    while(scanf("%s",a)!=EOF)
    {
        scanf("%s",b);
        lena=strlen(a);
        lenb=strlen(b);
        for(i=0;i<lena;i++)
        {
            if(a[i]=='|')
            {
                l=i;
                r=lena-i-1;
                break;
            }
        }
        //printf("%d-%d\n",l,r);
        if((lenb-abs(l-r))%2!=0||lenb<abs(l-r))
        {
            printf("Impossible\n");
        }
        else if(l<=r)
        {
            for(i=0;i<(lenb-(r-l))/2+r-l;i++)
            printf("%c",b[i]);
            printf("%s",a);
            for(;i<lenb;i++)
            {
                printf("%c",b[i]);
            }
            printf("\n");
        }
        else if(l>r)
        {
            for(i=0;i<(lenb-(l-r))/2;i++)
            printf("%c",b[i]);
            printf("%s",a);
            for(;i<lenb;i++)
            {
                printf("%c",b[i]);
            }
            printf("\n");


           // printf("%s",a);
            //printf("%s\n",b);
        }
    }
    return 0;
}

我的gitcafe blog地址:8cbx.gitcafe.io

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值