Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 856    Accepted Submission(s): 50


Problem Description
Recently, Goffi is interested in squary partition of integers.

A set n if and only if it satisfies the following conditions:

    1. the sum of n

  1. one of the subsets of 1 numbers sums up to a square of integer.
k distinct positive integers.
 
Input
Input contains multiple test cases (less than 10000). For each test case, there's one line containing two integers 30).
 
Output
For each case, if there exists a squary partition of
 
Sample Input
2 2 4 2 22 4
 
Sample Output
NO YES YES
 
#include <vector> 
#include <list> 
#include <map> 
#include <set> 
#include <deque> 
#include <queue> 
#include <stack> 
#include <bitset> 
#include <algorithm> 
#include <functional> 
#include <numeric> 
#include <utility> 
#include <sstream> 
#include <iostream> 
#include <iomanip> 
#include <cstdio> 
#include <cmath> 
#include <cstdlib> 
#include <cctype> 
#include <string> 
#include <cstring> 
#include <ctime> 

using namespace std;

#define _int64 long long

int main()
{
  int n,k,tmp,sum,rem,b1,i;
  while (scanf("%d%d",&n,&k)!=EOF)
  {
    sum=(k*(k-1)/2);
  //假设这个序列是从1到k-1的
  //此处记录1到k-1的和 b1
=0;
  //flag
for (i=1;i*i<n;i++) { rem=n-i*i; tmp=i*i; if (tmp<sum) continue; if ((rem<=k-1)&&(tmp-sum<k-rem)) continue; //if ((tmp==sum)&&(rem<=k-1)) continue; if ((tmp==sum+1)&&(rem==k)) continue; b1=1; //cout<<i<<endl; break; } if (b1==1) printf("YES\n"); else printf("NO\n"); } return 0; }

 

相关文章:

  • 2021-12-24
  • 2021-12-07
  • 2022-12-23
  • 2021-08-19
  • 2022-01-13
  • 2021-09-11
  • 2022-03-08
  • 2021-10-18
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-06-11
  • 2022-12-23
  • 2021-12-03
  • 2022-12-23
相关资源
相似解决方案