題目:
Mishka got an integer array aa of length nn as a birthday present (what a surprise!).
Mishka doesn't like this present and wants to change it somehow. He has invented an algorithm and called it "Mishka's Adjacent Replacements Algorithm". This algorithm can be represented as a sequence of steps:
Replace each occurrence of 1 in the array aa with 2;
Replace each occurrence of 2 in the array aa with 1;
Replace each occurrence of 3 in the array aa with 4;
Replace each occurrence of 4 in the array aa with 3;
Replace each occurrence of 5 in the array aa with 6;
Replace each occurrence of 6 in the array aa with 5;
……
Replace each occurrence of 10^9?1 in the array aa with 10^9;
Replace each occurrence of 10^9 in the array aa with 10^9?1.
Note that the dots in the middle of this algorithm mean that Mishka applies these replacements for each pair of adjacent integers (2i?1,2i2i?1,2i) for each i∈{1,2,…,5?108}i∈{1,2,…,5?108} as described above.
For example, for the array a=[1,2,4,5,10]a=[1,2,4,5,10], the following sequence of arrays represents the algorithm:
[1,2,4,5,10][1,2,4,5,10] →→ (replace all occurrences of 1 with 2) →→ [2,2,4,5,10][2,2,4,5,10] →→ (replace all occurrences of 2 with 1) →→ [1,1,4,5,10][1,1,4,5,10] →→ (replace all occurrences of 3 with 4) →→ [1,1,4,5,10][1,1,4,5,10] →→ (replace all occurrences of 4 with 3) →→ [1,1,3,5,10][1,1,3,5,10] →→ (replace all occurrences of 5 with 6) →→ [1,1,3,6,10][1,1,3,6,10] →→ (replace all occurrences of 6 with 5) →→ [1,1,3,5,10][1,1,3,5,10] →→ …… →→ [1,1,3,5,10][1,1,3,5,10] →→ (replace all occurrences of 10 with 9) →→ [1,1,3,5,9][1,1,3,5,9]. The later steps of the algorithm do not change the array.
Mishka is very lazy and he doesn't want to apply these changes by himself. But he is very interested in their result. Help him find it.
Input
The first line of the input contains one integer number nn (1≤n≤10001≤n≤1000) — the number of elements in Mishka's birthday present (surprisingly, an array).
The second line of the input contains nn integers a1,a2,…,ana1,a2,…,an (1≤ai≤1091≤ai≤109) — the elements of the array.
Output
Print nn integers — b1,b2,…,bnb1,b2,…,bn, where bibi is the final value of the ii-th element of the array after applying "Mishka's Adjacent Replacements Algorithm" to the array aa. Note that you cannot change the order of elements in the array.
Examples
Input
5
1 2 4 5 10
Output
1 1 3 5 9
Input
10
10000 10 50605065 1 5 89 5 999999999 60506056 1000000000
Output
9999 9 50605065 1 5 89 5 999999999 60506055 999999999
Note
The first example is described in the problem statement.
[原題鏈接]:http://codeforces.com/problemset/problem/1006/A
題意:把規(guī)定長(zhǎng)度數(shù)組中的值按照1→2、2→1定鸟、3→4译株、4→3的規(guī)律進(jìn)行交換缸匪,以此類(lèi)推到10^9 →10^9?1 .
解題思路:乍一看上去是有一點(diǎn)點(diǎn)想要暴力的意思,但是我覺(jué)得遍歷完可能就超時(shí)了蹦浦,所以我選擇看看規(guī)律篇裁。
不出所料的,在仔細(xì)觀(guān)察后肾砂,得到如下規(guī)律:數(shù)組中奇數(shù)不變,偶數(shù)減一宏悦。這下就是一道水題了镐确,不過(guò)關(guān)鍵還是思路包吝,不能只想著暴力破解
AC代碼:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a[1000],n,i;
cin>>n;
for(i=0;i<n;i++){
cin>>a[i];
if(a[i]%2==0){
a[i]=a[i]-1;
}
}
for(i=0;i<n;i++){
cout<<a[i]<<" ";
}
return 0;
}