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.

Examples
input

Copy
AC|T
L
output

Copy
AC|TL
input

Copy
|ABC
XYZ
output

Copy
XYZ|ABC
input

Copy
W|T
F
output

Copy
Impossible
input

Copy
ABC|
D
output

Copy
Impossible

题意:有两行字符串,如何把第二行的字符串加到第一行,使“|”左右两边字符个数相等,如果不能,输出Impossible

我的代码:

#include<stdio.h>
#include<string.h>
#include<math.h>
#include<algorithm>
#include<iostream>
#include<vector>
#include<queue>
#include<stack>
#include<limits.h>
#define ll long long
using namespace std;
const int maxn=1e6+10;
char ch[maxn],c[maxn];
char a[maxn],b[maxn];
int main()
{
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
cin>>ch;
cin>>c;
int l1=strlen(ch);
int l2=strlen(c);
int la=0,lb=0;
for(int i=0;;i++)
{
if(ch[i]=='|') break;
a[la++]=ch[i];
}
for(int i=la+1;i<l1;i++) b[lb++]=ch[i];
int La=la,Lb=lb;
if(l2<abs(la-lb)) cout<<"Impossible\n";
else
{
if((l1-1+l2)%2)
{
cout<<"Impossible\n";
}
else if(la==lb)
{
if(l2%2) cout<<"Impossible\n";
else
{
for(int i=0;i<=(l2-1)/2;i++) cout<<c[i];
cout<<a<<"|"<<b;
for(int i=(l2-1)/2+1;i<l2;i++) cout<<c[i];
cout<<endl;
}
}
else if(la>lb)
{
if(l2==la-lb) cout<<a<<"|"<<b<<c<<endl;
else
{
for(int i=0;i<(la+lb+l2)/2-la;i++) cout<<c[i];
cout<<a<<"|"<<b;
for(int i=(la+lb+l2)/2-la;i<l2;i++) cout<<c[i];
cout<<endl;
}
}
else if(la<lb)
{
if(l2==lb-la) cout<<a<<c<<"|"<<b<<endl;
else
{
for(int i=0;i<(l1-1+l2)/2-la;i++) cout<<c[i];
cout<<a<<"|"<<b;
for(int i=(l1-1+l2)/2-la;i<l2;i++) cout<<c[i];
cout<<endl;
}
}
}
return 0;
}

帆神的代码:

#include<stdio.h>
#include<string.h>
char a[1006],b[1006];
int main()
{
scanf("%s",a);
scanf("%s",b);
int la=strlen(a),lb=strlen(b);
int u;
for(int i=0;i<la;i++)
{
if(a[i]=='|')
u=i;
}
int x=u,y=la-u-1;//x—前半部分字符串的长度,y—后半部分字符串的长度
if(x>y&&lb>=x-y&&lb%2==(x-y)%2)
{
int p=(lb-x+y)/2;
for(int i=0;i<u;i++)
printf("%c",a[i]);
for(int i=0;i<p;i++)
printf("%c",b[i]);
printf("|");
for(int i=p;i<lb;i++)
printf("%c",b[i]);
for(int i=u+1;i<la;i++)
printf("%c",a[i]);
printf("\n");
}
else if(y>x&&lb>=y-x&&lb%2==(y-x)%2)
{
int p=(lb+x-y)/2;
for(int i=0;i<u;i++)
printf("%c",a[i]);
for(int i=p;i<lb;i++)
printf("%c",b[i]);
printf("|");
for(int i=u+1;i<la;i++)
printf("%c",a[i]);
for(int i=0;i<p;i++)
printf("%c",b[i]);
printf("\n");
}
else if(x==y&&lb%2==0)
{
int p=(lb+x-y)/2;
for(int i=0;i<u;i++)
printf("%c",a[i]);
for(int i=p;i<lb;i++)
printf("%c",b[i]);
printf("|");
for(int i=u+1;i<la;i++)
printf("%c",a[i]);
for(int i=0;i<p;i++)
printf("%c",b[i]);
printf("\n");
}
else
printf("Impossible\n");
return 0;
}

Codeforces Round #224 (Div. 2) A. Ksenia and Pan Scales的更多相关文章

  1. Codeforces Round #224 (Div. 2)

    题目:http://codeforces.com/contest/382 A Ksenia and Pan Scales 一个求天平是否能够平衡的题目...水题,注意一下结果的输出就行. #inclu ...

  2. Codeforces Round #366 (Div. 2) ABC

    Codeforces Round #366 (Div. 2) A I hate that I love that I hate it水题 #I hate that I love that I hate ...

  3. Codeforces Round #354 (Div. 2) ABCD

    Codeforces Round #354 (Div. 2) Problems     # Name     A Nicholas and Permutation standard input/out ...

  4. Codeforces Round #368 (Div. 2)

    直达–>Codeforces Round #368 (Div. 2) A Brain’s Photos 给你一个NxM的矩阵,一个字母代表一种颜色,如果有”C”,”M”,”Y”三种中任意一种就输 ...

  5. cf之路,1,Codeforces Round #345 (Div. 2)

     cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅.....   ...

  6. Codeforces Round #279 (Div. 2) ABCDE

    Codeforces Round #279 (Div. 2) 做得我都变绿了! Problems     # Name     A Team Olympiad standard input/outpu ...

  7. Codeforces Round #262 (Div. 2) 1003

    Codeforces Round #262 (Div. 2) 1003 C. Present time limit per test 2 seconds memory limit per test 2 ...

  8. Codeforces Round #262 (Div. 2) 1004

    Codeforces Round #262 (Div. 2) 1004 D. Little Victor and Set time limit per test 1 second memory lim ...

  9. Codeforces Round #371 (Div. 1)

    A: 题目大意: 在一个multiset中要求支持3种操作: 1.增加一个数 2.删去一个数 3.给出一个01序列,问multiset中有多少这样的数,把它的十进制表示中的奇数改成1,偶数改成0后和给 ...

随机推荐

  1. canvas+js实现荧光字符效果

    一个小玩意,代码来源于网络. 效果图如下 代码如下 <html> <head> <style> * { margin: 0; padding: 0; } html, ...

  2. LeetCode--217--存在重复元素

    问题描述: 给定一个整数数组,判断是否存在重复元素. 如果任何值在数组中出现至少两次,函数返回 true.如果数组中每个元素都不相同,则返回 false. 示例 1: 输入: [1,2,3,1] 输出 ...

  3. 20161208xlVBA工作表数据导入Access

    Sub InsertToDataBase() Dim DataPath As String Dim SQL As String Const DataName As String = "yun ...

  4. 我的Java学习笔记-Java面向对象

    今天来学习Java的面向对象特性,由于与C#的面向对象类似,不需详细学习 一.Java继承 继承可以使用 extends 和 implements 这两个关键字来实现继承. extends:类的继承是 ...

  5. mxnet(gluon) 实现DQN简单小例子

    参考文献 莫凡系列课程视频 增强学习入门之Q-Learning 关于增强学习的基本知识可以参考第二个链接,讲的挺有意思的.DQN的东西可以看第一个链接相关视频.课程中实现了Tensorflow和pyt ...

  6. JQuery $未定义

    ---恢复内容开始--- JQuery $未定义 转载▼   jquery是Yii集成的,利用jquery写的代码$(document).ready(function(){// 操作列表$('.ope ...

  7. pycharm破解方法

    1.下载破解文件到目录 E:/Program Files/JetBrains/PyCharm 2017.1.3安装目录下 链接:http://idea.lanyus.com/jar/Jetbrains ...

  8. Vysor安装

    Vysor安装     Vysor安装    

  9. SSO-基本概念

    什么是单点登录 单点登录(Single Sign On) 简称为sso,是目前流行的企业业务整合的解决方案之一.SSO的定义是在多个引用系统中用户只需要登录一次就可以访问所有相互信任的应用系统. 单点 ...

  10. 数据仓库建模与ETL的实践

    一.Data仓库的架构 Data仓库(Data Warehouse DW)是为了便于多维分析和多角度展现而将Data按特定的模式进行存储所建立起来的关系型Datcbase,它的Data基于OLTP源S ...