acm-对决

来源:互联网 发布:火炬之光2for mac汉化 编辑:程序博客网 时间:2024/04/26 14:18

对决

时间限制:1000 ms  内存限制:65535 KB
难度:0
描述

Topcoder要招进来了 n个新同学,Yougth计划把这个n个同学分成两组,要求每组中每个人必须跟另一组中每个同学进行一次算法对决,问存不存在一种分组方式在k场完成对决。(两组中每一组中人数都要大于0)

输入
有多组测试数据,每组测试数据两个数 n 和 k ,n和k都为0时表示输入结束。(0
输出
输出一行,如果可以,输出YES,不行的话输出NO。
样例输入
4 14 34 42 13 30 0
样例输出
NOYESYESYESNO
提示
4个人分成两组,1和3则需对决3场,2和2则需对决4场。
来源
Yougth原创
我的代码:
#include
int main()
{
 int n,k;
 int i;
 while(scanf("%d%d",&n,&k),n!=0&&k!=0)
 {
  int t=n/2;
  if(2*t==n)
  {
   if(k>(n/2)*(n/2)||k<(n-1))
    printf("NO\n");
   else
   {
    for(i=1;i<=n/2;i++)
    {
     if(i*(n-i)==k)
      break; 
    }
    if(i>n/2)
     printf("NO\n");
    elseprintf("YES\n"); 
   
  }
  else
  {
   if(k>(n/2)*(n/2+1)||k<(n-1))
    printf("NO\n");
   else
   {
    for(i=1;i<=n/2;i++)
    {
     if(i*(n-i)==k)
      break; 
    }
    if(i>n/2)
     printf("NO\n");
    elseprintf("YES\n");
   }
  }
 }
 return 0;
}
原创粉丝点击