您的位置:首页 > 其它

hdu4523威威猫系列故事——过生日

2014-06-13 20:00 169 查看

威威猫系列故事——过生日

Time Limit: 500/200 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)

Total Submission(s): 1130 Accepted Submission(s): 305



[align=left]Problem Description[/align]
  2月29号是威威猫的生日,由于这个日子非常特殊,4年才一次,所以生日这天许多朋友都前往威威猫家祝贺他的生日。

  大家给威威猫买了一个非常大非常大的蛋糕,蛋糕的形状是一个有n条边的凸多边形,可是威威猫的审美观有一点奇怪,他只喜欢有m条边的蛋糕,所以他要伙伴们把这个蛋糕切p次,然后给他一个只有m条边的新蛋糕。这下大家急了,这不是坑爹吗,审美观崎岖作怪。

  假设蛋糕可看成一个平面含n条边的凸多边形,每一刀必须沿直线切下去,p刀之后能给威威猫切出一个m条边的蛋糕吗?

[align=left]Input[/align]
多组测试数据,每组占一行,包含3个整数n, m, p(含义如上)。

[Technical Specification]

3 <= n <= 10^100

0 < m <= 10^100

0 <= p <= 10^100

[align=left]Output[/align]
每组测试数据,如果能够切出威威猫喜欢的蛋糕,请输出"YES",否则请输出"NO";

每组数据输出一行。

[align=left]Sample Input[/align]

4 5 1


[align=left]Sample Output[/align]

YES
java大数;其实只要一下几种情况:m<3 no;n==m yes;n<m if(n+p=>m) yes else no;n>m if(p>1)yes else no;java大数还是蛮方便的。[code]import java.math.BigInteger;
import java.util.Scanner;
public class Main {
public static void main(String ags[])
{BigInteger s1,s2,s3;
Scanner sc=new Scanner(System.in);
while(sc.hasNext())
{
s1=sc.nextBigInteger();
s2=sc.nextBigInteger();
s3=sc.nextBigInteger();
if(s2.compareTo(BigInteger.valueOf(3))==-1)
{
System.out.println("NO");
continue;
}
if(s2.compareTo(s1)==0)
{
System.out.println("YES");
continue;
}
if(s2.compareTo(s1)==1)
{
if(s2.compareTo(s1.add(s3))!=1)
System.out.println("YES");
else
System.out.println("NO");
continue;
}
if(s1.compareTo(s2)==1)
{
if(s3.compareTo(BigInteger.valueOf(1))>-1)
System.out.println("YES");
else
System.out.println("NO");
}

}
}
}

[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: