結果
問題 |
No.3 ビットすごろく
|
ユーザー |
![]() |
提出日時 | 2016-01-31 13:40:32 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 853 bytes |
コンパイル時間 | 620 ms |
コンパイル使用メモリ | 54,492 KB |
実行使用メモリ | 10,752 KB |
最終ジャッジ日時 | 2024-09-21 19:38:49 |
合計ジャッジ時間 | 7,008 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | WA * 2 TLE * 1 -- * 30 |
コンパイルメッセージ
main.cpp: In function ‘int main()’: main.cpp:40:11: warning: ‘movenum’ may be used uninitialized in this function [-Wmaybe-uninitialized] 40 | cout << movenum << endl; | ^~~~~~~
ソースコード
#include <iostream> using namespace std; int main() { int n, locate, bitcount, movenum; int road[10000], through[10000]; cin >> n; locate=1; for( int i=0; i<n; ++i )through[i]=0; for( int i=0; i<n; ++i ) { if( n==locate ) { movenum=i; i=n; } else if( 1==locate && 0<through[0] ) { movenum=-1; i=n; } else { road[i]=locate; through[locate-1]=1; for(int j=locate; j>1; j>>=1)through[locate-1]+=j&1; if(n<locate+through[locate-1] || 0<through[locate-1+through[locate-1]]) { if(0>=locate-through[locate-1] || 0<through[locate-1-through[locate-1]]) { locate=road[i-1]; i--; } else locate-=through[locate-1]; } else locate+=through[locate-1]; } } cout << movenum << endl; return 0; }