結果
問題 | No.3 ビットすごろく |
ユーザー |
|
提出日時 | 2018-01-21 17:28:36 |
言語 | C++11 (gcc 13.3.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 898 bytes |
コンパイル時間 | 905 ms |
コンパイル使用メモリ | 56,792 KB |
実行使用メモリ | 10,624 KB |
最終ジャッジ日時 | 2024-12-25 21:20:48 |
合計ジャッジ時間 | 117,453 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 14 TLE * 19 |
ソースコード
#include<iostream> #include<algorithm> using namespace std; class Sugo{ private: int N; int w[10000]; bool e[10000]; public: Sugo(int n); int fanc(int n); }; Sugo::Sugo(int _N){ N = _N; for(int i = 0; i < N; i++){ e[i] = false; } for(int i = 0; i < N; i++){ int tw = 1,rest = i + 1; while(rest != 1){ if(rest%2) tw++; rest /= 2; } w[i] = tw; } e[N - 1] = true; } int Sugo::fanc(int n){ int c = 0; if(n == 1) return 1; for(int i = 0; i < N; i++){ if(( i + 1 + w[i] == n || i + 1 - w[i] == n )&& !e[i]){ e[i] = true; c += fanc(i + 1) + 1; e[i] = false; } } if(c == 0) return -1; else return c; } int main(){ int n; cin >> n; Sugo t(n); cout << t.fanc(n) << endl; }