687D: Dividing Kingdom II
来源:互联网 发布:淘宝补单25天 编辑:程序博客网 时间:2024/06/06 18:50
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 O(log n).
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
- 687D: Dividing Kingdom II
- 687D Dividing Kingdom II(二分图,并茶几)
- Cf Round #360 (Div. 1) 687D Dividing Kingdom II
- codeforces 687D Dividing Kingdom II 并查集
- Codeforces 687D Dividing Kingdom II (图论+并查集)
- Codeforces Round #360 (Div. 1) D Dividing Kingdom II(并查集+暴力)
- Codeforces Round #360 (Div. 1) D Dividing Kingdom II(并查集+暴力) ★ ★
- Codeforces Round #360 (Div. 1) D. Dividing Kingdom II 暴力,二分图,并查集
- CF-260E Dividing Kingdom (树套树)
- Sicily 13296. Kingdom Rush II
- CF 260E Dividing Kingdom(枚举+线段树)
- CF-63D - Dividing Island(水题)
- Dividing
- Dividing
- Dividing
- Dividing
- Dividing
- Dividing
- 能源管理系统功能简单总结
- hiho第二十三周
- 勾股定理一日一证连载41
- 687C: The values you can make
- 给Eclipse添加各类插件
- 687D: Dividing Kingdom II
- 687E: TOF
- Detach Volume 操作 - 每天5分钟玩转 OpenStack(55)
- ECIR 2016 Paper Beyond Factoid QA: Effective Methods for Non-factoid Answer Sentence Retrieval
- ECIR 2016 Paper Modelling User Interest for Zero-query Ranking
- ICDM 2014 Paper ShellMiner Mining Organizational Phrases in Argumentative Texts in Social Media
- 《35岁高中生》
- Redis学习笔记(2)-Redis数据类型
- 基于Dubbo的分布式系统架构-使用Dubbo进行规模服务化前的工程结构优化