题目描述 给定一个长度可达1000位的非负整数字符串s,以及两个正整数a和b,要求将s从某个位置切割成两部分,使得:
如果存在多种切割方式,需返回使得左半部分数值最大的那一种;若无法切割则输出 NO
。
请将一个长整数切割成两部分,并使得这两部分分别满足以下条件:
第一部分:能够被整数a整除。
第二部分:能够被整数b整除。
切割后得到的两部分分别为正整数,并且不能有前导零。
给定一个长整数字符串和两个整数a和b,你需要判断是否能够找到一种切割方式,使得满足上述条件。
如果可以切割,输出切割后的两部分。如果不可以切割,则输出NO。
备注:
1.如果存在多种切割方式,请返回使第一部分的数值最大的切割方式。
2.切割出的正整数不能包含前导0,如0,01,0012都是不允许的。
第一行是一个大整数,这个整数的长度最大可达1000位
第二行包含两个整数a和b,其中1≤a,b≤106
如果存在合适的切割方式,输出YES,然后输出两行分别为切割后的左部分和右部分。
如果不存在合适的切割方式,输出NO
输入
116401024
97 1024
输出
YES
11640
1024
说明
11640能被97整除
1024能被1024整除
输入
284254589153928171911281811000
1009 1000
输出
YES
2842545891539
28171911281811000
说明
2842545891539能被1009整除
28171911281811000能被1000整除
输入
120
12 1
输出
NO
说明
要求切割为两个正整数,120切割成12和0,第二部分0不是正整数,所以返回NO