結果
問題 |
No.2241 Reach 1
|
ユーザー |
|
提出日時 | 2023-03-10 22:42:00 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 643 bytes |
コンパイル時間 | 2,021 ms |
コンパイル使用メモリ | 205,424 KB |
最終ジャッジ日時 | 2025-02-11 08:50:37 |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 16 WA * 19 |
ソースコード
#include<bits/stdc++.h> using namespace std; int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); long long N; cin>>N; queue<long long>bfs; bfs.push(N); unordered_map<long long,int>dist; dist[N]=0; while(bfs.size()){ long long v=bfs.front(); if(v==1)break; bfs.pop(); if(v%2==0){ long long k=v&-v; if(dist.find(v/k)==dist.end()){ dist[v/k]=dist[v]+1; bfs.push(v/k); } }else{ long long t=v-1; long long k=(t&-t)-1; if(dist.find(v*k+1)==dist.end()){ dist[v*k+1]=dist[v]+1; bfs.push(v*k+1); } } } cout<<dist[1]<<'\n'; }