688B: Lovely Palindromes
2016-07-01 12:33
615 查看
Codeforces Round #360 Editorial [+ Challenges!]
B. Lovely Palindromes
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
Pari has a friend who loves palindrome numbers. A palindrome number is a number that reads the same forward or backward. For example
12321, 100001 and
1 are palindrome numbers, while 112 and
1021 are not.
Pari is trying to love them too, but only very special and gifted people can understand the beauty behind palindrome numbers. Pari loves integers with even length (i.e. the numbers with even number of digits), so she tries to see a lot of big palindrome
numbers with even length (like a 2-digit
11 or 6-digit 122221), so maybe she could see something in them.
Now Pari asks you to write a program that gets a huge integer
n from the input and tells what is the n-th even-length positive palindrome number?
Input
The only line of the input contains a single integer n (1 ≤ n ≤ 10100 000).
Output
Print the n-th even-length palindrome number.
Examples
Input
Output
Input
Output
Note
The first 10 even-length palindrome numbers are
11, 22, 33, ... , 88, 99 and 1001.
Hint
Try to characterize even-length palindrome numbers.
Solution
For simplifications, in the following solution we define lovely integer as an even-length positive palindrome number.
An even-length positive integer is lovely if and only if the first half of its digits is equal to the reverse of the second half.
So if a and b are two different
2k-digit lovely numbers, then the first
k digits of a and
b differ in at least one position.
So a is smaller than
b if and only if the first half of a is smaller than the the first half of
b.
Another useful fact: The first half of a a lovely number can be any arbitrary positive integer.
Using the above facts, it's easy to find the first half of the
n-th lovely number — it exactly equals to integer
n. When we know the first half of a lovely number, we can concatenate it with its reverse to restore the lovely integer. To sum up, the answer can be made by concatenating
n and it's reverse together.
The complexity of this solution is
.
C++ code
Python code
s = raw_input()
print s + ''.join(reversed(s))
原文链接:Codeforces Round #360 Editorial [+ Challenges!] - Codeforces
B. Lovely Palindromes
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
Pari has a friend who loves palindrome numbers. A palindrome number is a number that reads the same forward or backward. For example
12321, 100001 and
1 are palindrome numbers, while 112 and
1021 are not.
Pari is trying to love them too, but only very special and gifted people can understand the beauty behind palindrome numbers. Pari loves integers with even length (i.e. the numbers with even number of digits), so she tries to see a lot of big palindrome
numbers with even length (like a 2-digit
11 or 6-digit 122221), so maybe she could see something in them.
Now Pari asks you to write a program that gets a huge integer
n from the input and tells what is the n-th even-length positive palindrome number?
Input
The only line of the input contains a single integer n (1 ≤ n ≤ 10100 000).
Output
Print the n-th even-length palindrome number.
Examples
Input
1
Output
11
Input
10
Output
1001
Note
The first 10 even-length palindrome numbers are
11, 22, 33, ... , 88, 99 and 1001.
Hint
Try to characterize even-length palindrome numbers.
Solution
For simplifications, in the following solution we define lovely integer as an even-length positive palindrome number.
An even-length positive integer is lovely if and only if the first half of its digits is equal to the reverse of the second half.
So if a and b are two different
2k-digit lovely numbers, then the first
k digits of a and
b differ in at least one position.
So a is smaller than
b if and only if the first half of a is smaller than the the first half of
b.
Another useful fact: The first half of a a lovely number can be any arbitrary positive integer.
Using the above facts, it's easy to find the first half of the
n-th lovely number — it exactly equals to integer
n. When we know the first half of a lovely number, we can concatenate it with its reverse to restore the lovely integer. To sum up, the answer can be made by concatenating
n and it's reverse together.
The complexity of this solution is
.
C++ code
// . .. ... .... ..... be name khoda ..... .... ... .. . \\ #include <bits/stdc++.h> using namespace std; inline int in() { int x; scanf("%d", &x); return x; } const long long N = 2002; int main() { string s; cin >> s; cout << s; reverse(s.begin(), s.end()); cout << s << endl; }
Python code
s = raw_input()
print s + ''.join(reversed(s))
原文链接:Codeforces Round #360 Editorial [+ Challenges!] - Codeforces
相关文章推荐
- 51NOD 1417 天堂里的游戏(列等式 解方程)
- 浅谈Java中的hashcode方法
- classpnp.sys 卡住
- mysql iot 主键自增列问题
- 虚拟化基础架构Windows 2008篇之12-WSUS工作站端配置
- 每日一linux命令(22)-------find 命令的参数详解
- Uncaught TypeError: Cannot set property 'innerHTML' of null 学习Chrome插件时,要在弹出页面中显示当前时间,结果怎样也显示不出来 看
- android侧滑菜单笔记
- mysql iot 主键自增列问题
- mysql iot 主键自增列问题
- 如何下载谷歌地球高程为SHP格式的等高线
- java框架之spring模块概述
- Codeforces 679B - dp
- Android之四大组件之一-Activity(二)
- Codeforces-687A NP-Hard Problem
- GCD与多线程编程
- 强大的正则表达式
- 辞职后的自我剖析
- windows server 2008 r2 负载平衡 找不到主机 解决方案
- PHP获取POST数据的几种方法汇总