#include<algorithm>
#include<iostream>
#include<list>
#include<map>
#include<queue>
#define FOR(i,n) for(int i = 0;i<n;++i)
#define FORI(i,b,n) for(int i = b;i<n;++i)
#define FORD(i,n) for(int i = n;i>=0;--i)
#define ZERO 0.000001
#define MAX ((1<<31)-1)
#define qprintf debug && printf
#define min(a,b) ((a)<(b)?(a):(b))
#define max(a,b) ((a)>(b)?(a):(b))
#define ull long long int
//int debug=0;
//#define dcout debug && cout
using namespace std;
#define MP 33343
#define MAX_FACTORS 1000
#define MAX_DIFF_FACTORS 15
int main(){
int n;
cin>>n;
int t[100];
t[0]=0;
t[1]=1;
int h=1;
while(t[h]<=1000000000){
++h;
t[h]=t[h-1]+t[h-2];
}
while(n--){
int k;
cin>>k;
ull s;
int ok=0;
FOR(i,h){
s=0;
FOR(j,h){
if(j>i)break;
if(s>k)break;
s=t[i]*(ull)t[j];
if(s==k){
i=h;ok=1;
cout<<"TAK"<<endl;
}
}
}
if(!ok)cout<<"NIE"<<endl;
}
return 0;
}
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 | #include<algorithm> #include<iostream> #include<list> #include<map> #include<queue> #define FOR(i,n) for(int i = 0;i<n;++i) #define FORI(i,b,n) for(int i = b;i<n;++i) #define FORD(i,n) for(int i = n;i>=0;--i) #define ZERO 0.000001 #define MAX ((1<<31)-1) #define qprintf debug && printf #define min(a,b) ((a)<(b)?(a):(b)) #define max(a,b) ((a)>(b)?(a):(b)) #define ull long long int //int debug=0; //#define dcout debug && cout using namespace std; #define MP 33343 #define MAX_FACTORS 1000 #define MAX_DIFF_FACTORS 15 int main(){ int n; cin>>n; int t[100]; t[0]=0; t[1]=1; int h=1; while(t[h]<=1000000000){ ++h; t[h]=t[h-1]+t[h-2]; } while(n--){ int k; cin>>k; ull s; int ok=0; FOR(i,h){ s=0; FOR(j,h){ if(j>i)break; if(s>k)break; s=t[i]*(ull)t[j]; if(s==k){ i=h;ok=1; cout<<"TAK"<<endl; } } } if(!ok)cout<<"NIE"<<endl; } return 0; } |
English