ACM 對決

OpenSoucre發表於2014-04-07

對決

時間限制:1000 ms  |  記憶體限制:65535 KB
難度:0
 
描述

Topcoder要招進來了 n 個新同學,Yougth計劃把這個n個同學分成兩組,要求每組中每個人必須跟另一組中每個同學進行一次演算法對決,問存不存在一種分組方式在k場完成對決。(兩組中每一組中人數都要大於0)

 
輸入
有多組測試資料,每組測試資料兩個數 n 和 k ,n和k都為0時表示輸入結束。(0<n<10000,0<k<1000000)
輸出
輸出一行,如果可以,輸出YES,不行的話輸出NO。
樣例輸入
4 1
4 3
4 4
2 1
3 3
0 0
樣例輸出
NO
YES
YES
YES
NO
提示
4個人分成兩組,1和3則需對決3場,2和2則需對決4場。

 題目要求是找出一種分組方式使n個同學分成兩組,然後進行k場決賽

如n=6,k=8,分組方式有

第一組 第二組 比賽場數
1 5 1x5
2 4 2x4
3 3 3x3

 

 

 

#include <iostream>
using namespace std;

int main(){
    int n,k;
    while(cin >> n >> k  && n && k){
        int i = 1;
        for(i = 1; i <= n/2; ++ i){
            if(k == i*(n-i)){
                cout<< "YES"<<endl;
                break;
            }
        }
        if(i > n/2) cout<<"NO"<<endl;
    }

}