結果
| 問題 |
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;
}