結果
問題 |
No.3 ビットすごろく
|
ユーザー |
|
提出日時 | 2018-11-22 23:37:07 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 914 bytes |
コンパイル時間 | 644 ms |
コンパイル使用メモリ | 54,488 KB |
実行使用メモリ | 8,448 KB |
最終ジャッジ日時 | 2024-12-24 18:01:55 |
合計ジャッジ時間 | 31,530 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 15 WA * 13 TLE * 5 |
コンパイルメッセージ
main.cpp: In function ‘int main()’: main.cpp:32:17: warning: ‘b’ may be used uninitialized in this function [-Wmaybe-uninitialized] 32 | if (i == b) break; | ^~
ソースコード
#include <iostream> using namespace std; int count(int n) { int i, c = 0, b = 1; for (i=0; i<16; i++) { b *= 2; if (b > n) break; } while (1) { b /= 2; if (i-- < 0 || !n) break; if (n - b >= 0) { n -= b; c++; } } return c; } int main() { int i=1, n, c, way=1, b; bool flag = false, loopCheck = false; cin >> n; while (i <= n) { if (i == n) { flag = true; break; } c = count(i); if (i + c > n) { i -= c; if (loopCheck) { if (i == b) break; } else { b = i; loopCheck = true; } } else { i += c; } way++; } if (flag) { cout << way << endl; } else { cout << -1 << endl; } return 0; }