fzu_noip 1033 (作业问题-拼最大的2,3,5倍数)
来源:互联网 发布:数据库开发教程 编辑:程序博客网 时间:2024/04/30 10:07
作业问题
时限:1s内存:32M
★问题描述:
小T很喜欢数学,每天老师刚布置完作业,他就开始思考,今天他遇到了困难。
现在有很多的数字,你的任务是找出由这些数字组成的最大的数,并且这个数必须能被2,3,5整除。你可以只用其中一部分的数,但不允许出现前导0。
★数据输入:
输入数据的第一行为一个整数N。(1<=N<=1000)表示给出N个数字,每个数字范围是0—9。接下来一行有N个数,数字由空格隔开。
★结果输出:
输出你找出的最大的数,如果不存在这样的数就输出-1。
输入示例
输出示例
1
0
0
11
3 4 5 4 5 3 5 3 4 4 0
5554443330
8
3 2 5 1 5 2 2 3
-1
裸裸的贪心。
满足能被2,5整除,当且仅当数中有0且放在末尾
满足能被3整除,要让sum%3=0.
显然要取尽可能多的位数,先判断是否能全取。
用a[i]表示数字i有几个,b[i]表示%3=i的数字有几个.
若全取后%3=1,则删1个%3=1或2个%3=2.优先删删除数字少的,次优先删数字尽量小的。
若无法全取,也不够删,则无解.
同理%3=2.
若有合法解,数字必从大到小排列。
由于不能有前导0,需特判0,0,0,0……的情况。
var a:array[0..9] of longint; b:array[0..2] of longint; n,i,j,p:longint;procedure decrease(k:longint);begin if (a[k]>0) then dec(a[k]) else if (a[k+3]>0) then dec(a[k+3]) else if (a[k+6]>0) then dec(a[k+6]);end;begin read(n); fillchar(a,sizeof(a),0); for i:=1 to n do begin read(j); inc(a[j]); inc(b[j mod 3]); end; if (a[0]=0) then begin writeln('-1'); halt; end; p:=b[1] mod 3+(b[2]*2) mod 3; if (p=1) then begin if (b[1]>0) then decrease(1) else if (b[2]>1) then begin decrease(2);decrease(2); end else begin writeln('-1'); halt; end; end; if (p=2) then begin if (b[2]>0) then decrease(2) else if (b[1]>1) then begin decrease(1);decrease(1); end else begin writeln('-1'); halt; end; end; p:=0; for i:=1 to 9 do inc(p,a[i]); if (p=0) then begin writeln('0'); halt; end; for i:=9 downto 0 do for j:=1 to a[i] do write(i); writeln;end.
- fzu_noip 1033 (作业问题-拼最大的2,3,5倍数)
- 3的倍数和5的倍数
- 1284 2 3 5 7的倍数
- 1284 2 3 5 7的倍数
- 2 3 5 7的倍数
- 1284 2 3 5 7的倍数
- 2 3 5 7的倍数
- 2 3 5 7的倍数
- 2 3 5 7的倍数
- 2 3 5 7的倍数
- 找出3的最大倍数的整数集合
- 51-nod -1284 2 3 5 7的倍数
- 51NOD 1284 2 3 5 7的倍数
- 51nod 1284 2 3 5 7的倍数
- 51nod1284 2 3 5 7的倍数
- 51nod1284 2 3 5 7的倍数
- 51nod1284 2 3 5 7的倍数
- nefu 1004 2,3,5,7的倍数
- Features currently not supported by Unity
- 快速排序(递归调用版)
- OPENGL编程宝典Phong着色
- HttpClient教程(保存)
- ADSPhong.vp
- fzu_noip 1033 (作业问题-拼最大的2,3,5倍数)
- ADSPhong.fp
- EE-扫盲
- osgdepthpartition例子
- 黑马程序员-Java基础常用类
- 第一次破解软件
- 黑马程序员-Eclipse
- 浅谈JCFXBL“技术管理”思路
- Android沙盘原理与实现