結果

問題 No.3 ビットすごろく
ユーザー smiken_61smiken_61
提出日時 2015-10-23 14:56:03
言語 C++11
(gcc 11.4.0)
結果
MLE  
実行時間 -
コード長 755 bytes
コンパイル時間 3,098 ms
コンパイル使用メモリ 67,632 KB
実行使用メモリ 814,628 KB
最終ジャッジ日時 2023-09-29 17:29:17
合計ジャッジ時間 7,701 ms
ジャッジサーバーID
(参考情報)
judge15 / judge12
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 2 ms
4,376 KB
testcase_01 AC 1 ms
4,376 KB
testcase_02 AC 2 ms
4,380 KB
testcase_03 MLE -
testcase_04 -- -
testcase_05 -- -
testcase_06 -- -
testcase_07 -- -
testcase_08 -- -
testcase_09 -- -
testcase_10 -- -
testcase_11 -- -
testcase_12 -- -
testcase_13 -- -
testcase_14 -- -
testcase_15 -- -
testcase_16 -- -
testcase_17 -- -
testcase_18 -- -
testcase_19 -- -
testcase_20 -- -
testcase_21 -- -
testcase_22 -- -
testcase_23 -- -
testcase_24 -- -
testcase_25 -- -
testcase_26 -- -
testcase_27 -- -
testcase_28 -- -
testcase_29 -- -
testcase_30 -- -
testcase_31 -- -
testcase_32 -- -
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <iostream>
#include <algorithm>
#include <stdlib.h>
#include <string>
#include <queue>
using namespace std;


int b(int a){
int k=0;
for(int y=0;y<8;y++){
if(a&1 == 1 ) k=k+1;
a=a >> 1;
}
return k;
}


int main() {
queue<pair<int,int> > q; //iti,kaisuu
int n;
pair<int,int> z;
cin>>n;
q.push(make_pair(1,1));
int ans=-1;
int kaisuu=-1,ichi;
while(ans==-1 && kaisuu < n+2){
z=q.front();
 ichi=z.first;
kaisuu=z.second;
if(ichi==n) ans=kaisuu;
if(0< ichi+b(ichi) && ichi+b(ichi) <n+1){
q.push(make_pair(ichi+b(ichi),kaisuu+1));
//cout<<ichi+b(ichi)<<" "<<kaisuu+1<<endl;
}

if(0< ichi-b(ichi) && ichi-b(ichi) <n+1){
q.push(make_pair(ichi-b(ichi),kaisuu+1));
//cout<<ichi-b(ichi)<<" "<<kaisuu+1<<endl;
}
q.pop();


}



cout<<ans<<endl;

return 0;
}
0