對決
時間限制: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; } }