题目链接 | 难度等级 | 完成状态 | 完成分数 | 最后编辑时间 | 需要注意 |
---|---|---|---|---|---|
Anton and currency you all know | ★☆☆☆☆ | 答案正确 | 100 | 2015-02-23 15:22:53 | 无 |
给一个很长的奇数,交换任意两位,使得其变成尽量大的偶数,问这个偶数是多少。
欸这个……算是贪心吧
508B.cpp代码已折叠
展开折叠内容
|
---|
#include <iostream> #include<cstdio> #include<algorithm> #include<cmath> #include<cstdlib> #include<climits> #include<queue> #include<vector> #define eps 1e+5 #define f(i,n) for(int i=1;i<=n;++i) #define fi(i,t,n)for(int i=t;i<=n;++i) #define fd(i,n) for(int i=n;i>=1;--i) #define fdi(i,t,n) for(int i=n;i>=t;--i) #define foreach(i,s) for(typeof(s.begin()) i=s.begin();i!=s.end();++i) #define rforeach(i,s) for(typeof(s.rbegin()) i=s.rbegin();i!=s.rend();++i) #define si(n) scanf("%d",&n) #define dsi(n) int n;scanf("%d",&n) #define llu unsigned long long #define ci const int & using namespace std; int main() { string s; cin>>s; foreach(i,s) if(((*i-'0')&1)==0&&(*i<*(s.end()-1)))//fixed:是小于号// { swap(*i,*(s.end()-1)); cout<<s; return 0; } rforeach(i,s)//fixed:遗漏变小情况// if(((*i-'0')&1)==0) { swap(*i,*(s.end()-1)); cout<<s; return 0; } cout<<-1; } |