首页 > 代码库 > Coderforces 508B 简单贪心
Coderforces 508B 简单贪心
背景:1——WA:有一出少了break,还是惧怕时间没有自己出数据看看的错!
思路:fi全是奇数,输出-1,else if 全部偶数都大于最后一位数,让最右边的偶数和最后一位数交换;else 让最左边的比最后一位数打的偶数与最后一位数交换!
#include<stdio.h> #include<string.h> char str[100009]; int main(void){ while(~scanf("%s",str)){ int n=strlen(str); bool ok=false; for(int i=0;i < n-1;i++){if((str[i]-'0')%2 == 0) ok=true;} if(!ok) printf("-1\n"); else{ for(int i=0;i < n-1;i++){ if((str[i]-'0')%2 == 0 && str[i] < str[n-1]){ char key=str[i]; str[i]=str[n-1]; str[n-1]=key; ok=false; break; } } if(!ok) printf("%s\n",str); else{ for(int i=n-2;i >= 0;i--){ if((str[i]-'0')%2 == 0){ char key=str[i]; str[i]=str[n-1]; str[n-1]=key; printf("%s\n",str); break; } } } } } return 0; }
Coderforces 508B 简单贪心
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。