-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathn.cpp
More file actions
67 lines (58 loc) · 1.61 KB
/
Copy pathn.cpp
File metadata and controls
67 lines (58 loc) · 1.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <bits/stdc++.h>
#define _ printf("\n");
#define sc1(a) scanf("%d", &a)
#define sc2(a,b) scanf("%d %d", &a, &b)
#define sc3(a,b,c) scanf("%d %d %d", &a, &b, &c)
#define sc4(a,b,c, d) scanf("%d %d %d %d", &a, &b, &c, &d)
#define iz(b) if(b==0) { break; }
#define pf(a) printf("%d ", a);
#define pfc(c,a) printf("%c -> %d ", c, a);
#define pb(a) push_back(a)
#define inf 0x3f3f3f3f
#define mst(a, b) memset(a, b, sizeof a)
#define fr(i,a,b) for(int i=a; i < b; i++)
#define mp(a,b) make_pair(a,b)
#define st first
#define pv(a, i) for(int i =0 ; i < (a.size()+0 ); i++ ) {printf("%d ",a[i]); if(i==a.size() - 1 )_ }
#define pvp(a, i) for(int i =0 ; i <(a.size()+0 ); i++ ) {printf("%d %d ~ ",a[i].st, a[i].nd); if(i==a.size() - 1 )_ }
#define nd second
#define EPS 1e-9
#define PI acos(-1)
using namespace std;
typedef vector<int> vi;
typedef long long int lld;
typedef pair<int,int> ii; // first==no, second==wieght
typedef vector<ii> vii;
typedef vector<lld> vlld;
typedef vector<vi> vvi;
typedef set<ii> sii;
typedef set<int> si;
typedef pair<char, int> ci;
int r;
int bs(int ini, int fim){
// printf("loop2 ini %d fim %d\n", ini, fim);
if( ini+1 >= fim) return inf;
int mid = (ini+fim)/2, k;
k = r - (mid*mid);
if( k== 0 ) return mid;
if ( k < 0 ) return bs(ini, mid);
return bs(mid, fim);
}
int main (int argc, char const* argv[]) {
int n, k;
bool ok;
while( scanf("%d", &n) != EOF ) {
if( n < 0 ) { printf("NO\n"); continue;}
ok =0;
fr(i,0,318){
r = n - (i*i);
k = bs(-1, 318);
if( k < inf ) {
ok = 1; break;
}
}
if(ok) printf("YES\n");
else printf("NO\n");
}
return 0;
}