#include <algorithm> #include <array> #include <cassert> #include <cmath> #include <cstdio> #include <cstdlib> #include <cstring> #include <ctime> #include <exception> #include <fstream> #include <functional> #include <iostream> #include <map> #include <numeric> #include <regex> #include <set> #include <sstream> #include <stdexcept> #include <string> #include <tuple> #include <typeinfo> #include <vector> using namespace std; typedef long long ll; typedef long double ld; typedef vector<int> vi; typedef vector<string> vs; #define rep(i,b) for(auto i=(0);i<(b);++i) #define fo(i,a,b) for(auto i=(a);i<=(b);++i) #define ford(i,a,b) for(auto i=(a);i>=(b);--i) #define fore(a,b) for(auto &a:(b)) #define v vector #define pb push_back #define all(x) (x).begin(),(x).end() #define clr(x,a) memset(x,a,sizeof(x)) typedef ostringstream oss; typedef istringstream iss; template<class T> string to_str(const T &a) { oss os; os << a; return os.str(); } template<> string to_str<ld>(const ld& a) { oss os; os.precision(10); os.setf(ios::fixed); os << a; return os.str(); } template<class T> T from_str(const string &s) { iss is; T val; is >> val; return val; } int cond = (ll)1; #define db(x) { if (cond > 0) { cond--; rep (xxx, 1) cerr << __LINE__ << " " << #x << " " << x << endl; cerr.flush(); } } v<ll> fib; void solve() { int cur; cin>>cur; bool ok = cur == 0; if (!ok) ok = find_if(all(fib), [&](int val) { if (val && cur % val == 0) { int next = cur / val; return binary_search(all(fib), next); } return false; }) != fib.end(); if (ok) cout << "TAK" <<endl; else cout << "NIE" <<endl; } int main(int argc, char ** argv) { ios::sync_with_stdio(false); // freopen("../1.in","r",stdin); // freopen("../2.in","r",stdin); // freopen("../3.in","r",stdin); // freopen("../A-small.in","r",stdin); freopen("../A-small.out","w",stdout); // freopen("../A-small-attempt0.in","r",stdin);freopen("../A-small-attempt0.out","w",stdout); // freopen("../A-small-attempt1.in","r",stdin);freopen("../A-small-attempt1.out","w",stdout); // freopen("../A-small-attempt2.in","r",stdin);freopen("../A-small-attempt2.out","w",stdout); // freopen("../A-large.in","r",stdin); freopen("../A-large.out","w",stdout) fib = { 0, 1 }; while (fib.back() <= (ll)1e9) { fib.pb(*(fib.end() - 1) + *(fib.end() - 2)); } cond = argc >= 2 && argv[1][0] == 'q' ? 1000 : 0; int t; cin >> t; fo (i, 1, t) { solve(); } 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 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | #include <algorithm> #include <array> #include <cassert> #include <cmath> #include <cstdio> #include <cstdlib> #include <cstring> #include <ctime> #include <exception> #include <fstream> #include <functional> #include <iostream> #include <map> #include <numeric> #include <regex> #include <set> #include <sstream> #include <stdexcept> #include <string> #include <tuple> #include <typeinfo> #include <vector> using namespace std; typedef long long ll; typedef long double ld; typedef vector<int> vi; typedef vector<string> vs; #define rep(i,b) for(auto i=(0);i<(b);++i) #define fo(i,a,b) for(auto i=(a);i<=(b);++i) #define ford(i,a,b) for(auto i=(a);i>=(b);--i) #define fore(a,b) for(auto &a:(b)) #define v vector #define pb push_back #define all(x) (x).begin(),(x).end() #define clr(x,a) memset(x,a,sizeof(x)) typedef ostringstream oss; typedef istringstream iss; template<class T> string to_str(const T &a) { oss os; os << a; return os.str(); } template<> string to_str<ld>(const ld& a) { oss os; os.precision(10); os.setf(ios::fixed); os << a; return os.str(); } template<class T> T from_str(const string &s) { iss is; T val; is >> val; return val; } int cond = (ll)1; #define db(x) { if (cond > 0) { cond--; rep (xxx, 1) cerr << __LINE__ << " " << #x << " " << x << endl; cerr.flush(); } } v<ll> fib; void solve() { int cur; cin>>cur; bool ok = cur == 0; if (!ok) ok = find_if(all(fib), [&](int val) { if (val && cur % val == 0) { int next = cur / val; return binary_search(all(fib), next); } return false; }) != fib.end(); if (ok) cout << "TAK" <<endl; else cout << "NIE" <<endl; } int main(int argc, char ** argv) { ios::sync_with_stdio(false); // freopen("../1.in","r",stdin); // freopen("../2.in","r",stdin); // freopen("../3.in","r",stdin); // freopen("../A-small.in","r",stdin); freopen("../A-small.out","w",stdout); // freopen("../A-small-attempt0.in","r",stdin);freopen("../A-small-attempt0.out","w",stdout); // freopen("../A-small-attempt1.in","r",stdin);freopen("../A-small-attempt1.out","w",stdout); // freopen("../A-small-attempt2.in","r",stdin);freopen("../A-small-attempt2.out","w",stdout); // freopen("../A-large.in","r",stdin); freopen("../A-large.out","w",stdout) fib = { 0, 1 }; while (fib.back() <= (ll)1e9) { fib.pb(*(fib.end() - 1) + *(fib.end() - 2)); } cond = argc >= 2 && argv[1][0] == 'q' ? 1000 : 0; int t; cin >> t; fo (i, 1, t) { solve(); } return 0; } |