POJ 2969 Divisibility by 15
2014-04-09 17:20
155 查看
本来是想当dp题来写的, 但是写了之后发现果然还是贪心好写啊...
结果正常的程序就写成这样了233
/*POJ 2969 Divisibility by 15*/
#include <stdio.h>
#include <stdlib.h>
#define For(i,m,n) for(i=(m);i<(n);i++)
int cnt[10];
main()
{
int i=0, j, flag=0, sum=0, v=0, s;
char ch;
while(scanf("%c",&ch)!=EOF&&ch!='\n') cnt[ch-'0']++, sum+=ch-'0';
sum%=3;
if(!cnt[0]&&!cnt[5]) puts("impossible");
else{
if(!cnt[0]) cnt[5]--, flag=1;
if(sum) {
s=sum;
if(cnt[sum]+cnt[sum+3]+cnt[sum+6]==0) s=3-sum;
for(i=s;i<9;i+=3){
if(cnt[i]) cnt[i]--, sum=(sum+3-s%3)%3;
if(cnt[i]&&sum) cnt[i]--, sum=0;
if(!sum) break;
}
}
For(j,1,10) v+=cnt[j];
if(v==0||i>=9){
if(cnt[0]) puts("0");
else puts("impossible");
exit(0);
}
for(i=9;i>=0;i--){
j=cnt[i];
while(j--) printf("%d",i);
}
if(flag) printf("5");
puts("");
}
return 0;
}
结果正常的程序就写成这样了233
/*POJ 2969 Divisibility by 15*/
#include <stdio.h>
#include <stdlib.h>
#define For(i,m,n) for(i=(m);i<(n);i++)
int cnt[10];
main()
{
int i=0, j, flag=0, sum=0, v=0, s;
char ch;
while(scanf("%c",&ch)!=EOF&&ch!='\n') cnt[ch-'0']++, sum+=ch-'0';
sum%=3;
if(!cnt[0]&&!cnt[5]) puts("impossible");
else{
if(!cnt[0]) cnt[5]--, flag=1;
if(sum) {
s=sum;
if(cnt[sum]+cnt[sum+3]+cnt[sum+6]==0) s=3-sum;
for(i=s;i<9;i+=3){
if(cnt[i]) cnt[i]--, sum=(sum+3-s%3)%3;
if(cnt[i]&&sum) cnt[i]--, sum=0;
if(!sum) break;
}
}
For(j,1,10) v+=cnt[j];
if(v==0||i>=9){
if(cnt[0]) puts("0");
else puts("impossible");
exit(0);
}
for(i=9;i>=0;i--){
j=cnt[i];
while(j--) printf("%d",i);
}
if(flag) printf("5");
puts("");
}
return 0;
}
相关文章推荐
- SPOJ 416 - Divisibility by 15(贪心)
- SPOJ 416 - Divisibility by 15(贪心)
- POJ-2969 the pilots brothers' refridgerator
- SPOJ:416 Divisibility by 15
- POJ 2677 (算法导论15-3)双调欧几里得旅行商问题 dp
- Divisibility by 15
- POJ1.3 15 苹果和虫子
- POJ 3356 AGTC(算法导论15-5编辑距离) 经典dp
- POJ 1.9 15 接水问题
- (诡异Floyd&自环)MZ Training 2014 #15 E题(POJ 2240)
- poj 3641 ——2016——3——15
- Poj 2969
- NYOJ 15 括号匹配(二) POJ 2955 Brackets(区间dp)
- SPOJ 416 Divisibility by 15 细节题
- poj 3641 ——2016——3——15
- poj-2969
- poj3300
- poj 1611
- 【转】POJ 图论、网络流题目
- POJ 2965 The Pilots Brothers' refrigerator 贪心神解【转】