0
点赞
收藏
分享

微信扫一扫

CF 505B(Anton and currency you all know-贪心)



B. Anton and currency you all know



time limit per test



memory limit per test



input



output



currency you all know

currency you all know against the burle for tomorrow. Now Anton knows that tomorrow the exchange rate will be an even number, which can be obtained from the present rate by swapping exactly two distinct digits in it. Of all the possible values that meet these conditions, the exchange rate for tomorrow will be the maximum possible. It is guaranteed that today the exchange rate is an odd positive integer n. Help Anton to determine the exchange rate of currency you all know



Input



n — the exchange rate of currency you all know for today. The length of number n's representation is within range from 2 to 105, inclusive. The representation of n



Output



 - 1.

currency you all know



Sample test(s)



input



527



output



572



input



4573



output



3574



input



1357997531



output



-1



考虑所有的换法,让高位的数尽量大。


#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<functional>
#include<iostream>
#include<cmath>
#include<cctype>
#include<ctime>
using namespace std;
#define For(i,n) for(int i=1;i<=n;i++)
#define Fork(i,k,n) for(int i=k;i<=n;i++)
#define Rep(i,n) for(int i=0;i<n;i++)
#define ForD(i,n) for(int i=n;i;i--)
#define RepD(i,n) for(int i=n;i>=0;i--)
#define Forp(x) for(int p=pre[x];p;p=next[p])
#define Forpiter(x) for(int &p=iter[x];p;p=next[p])
#define Lson (x<<1)
#define Rson ((x<<1)+1)
#define MEM(a) memset(a,0,sizeof(a));
#define MEMI(a) memset(a,127,sizeof(a));
#define MEMi(a) memset(a,128,sizeof(a));
#define INF (2139062143)
#define F (100000007)
#define MAXL (100000+10)
long long mul(long long a,long long b){return (a*b)%F;}
long long add(long long a,long long b){return (a+b)%F;}
long long sub(long long a,long long b){return (a-b+(a-b)/F*F+F)%F;}
typedef long long ll;
char s[MAXL];
int main()
{
// freopen("Anton.in","r",stdin);
// freopen(".out","w",stdout);
scanf("%s",s+1);
int n=strlen(s+1);
For(i,n)
{
if ((s[i]-'0')%2==0&&s[i]<s[n])
{
swap(s[i],s[n]);
printf("%s",s+1);
return 0;
}
}
ForD(i,n)
{
if ((s[i]-'0')%2==0)
{
swap(s[i],s[n]);
printf("%s",s+1);
return 0;
}
}

cout<<"-1"<<endl;
return 0;
}






举报

相关推荐

0 条评论