結果
問題 | No.642 Two Operations No.1 |
ユーザー |
![]() |
提出日時 | 2018-02-02 23:01:14 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 3,120 bytes |
コンパイル時間 | 845 ms |
コンパイル使用メモリ | 104,136 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-12-31 08:06:01 |
合計ジャッジ時間 | 1,435 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 15 |
ソースコード
#include <fstream>#include <iostream>#include <algorithm>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <string>#include <sstream>#include <map>#include <set>#include <vector>#include <stack>#include <cmath>#include <queue>#include <random>using namespace std;#define INT_MAX_VALUE 2147483647#define LONG_LONG_MAX_VALUE 9223372036854775807#define ll long longtemplate <class T>T mymax(T a,T b){if(a>=b) return a;return b;}template <class T>T mymin(T a,T b){if(a<=b) return a;return b;}ll gcd(ll a, ll b){if(a<b){swap(a,b);}while(b){ll r = a%b;a=b;b=r;}return a;}ll lcm(ll a, ll b){return (a*b)/gcd(a,b);}struct XX{int a;int b;int z;int i;};class xxGreater {public:bool operator()(const XX& riLeft, const XX& riRight) const {//第2条件if((riLeft.b) == (riRight.b)){return riLeft.i < riRight.i;//<:昇順(小さいものから順番)、>:降順(大きいものから順番)//プライオリティキューの場合は > で、top()すると値の小さいものがとれる}//第1条件return (riLeft.b) > (riRight.b);}};//map<long long,long long> prime_f(long long n){// map<long long,long long>res;// for(int i=2;i*i<=n;i++){// while(n%i==0){// ++res[i];// n/=i;// }// }// if(n!=1)res[n]=1;// return res;//}int V=0;//頂点数vector<int>G[10000];//隣接リストint match[10000];//マッチングのペアbool used[10000];void add_edge(int u, int v){G[u].push_back(v);G[v].push_back(u);}bool dfs(int v){used[v]=true;for(int i=0;i<G[v].size();i++){int u=G[v][i], w=match[u];if(w<0 || (!used[w] && dfs(w))){match[v]=u;match[u]=v;return true;}}return false;}int biparticle_matching(int vv){//頂点数を引数で渡すV=vv;int res=0;memset(match, -1, sizeof(match));for(int v=0;v<V;v++){if(match[v]<0){memset(used,false,sizeof(used));if(dfs(v)){res++;}}}return res;}int main(int argc, const char * argv[]){//std::ios::sync_with_stdio(false);//scanf("%s",S);//scanf("%d",&N);//sscanf(tmp.c_str(),"%dd%d%d",&time[i], &dice[i], &z[i]);//getline(cin, target);//cin >> x >> y;//テスト用//ifstream ifs( "1_06.txt" );//ifs >> a;//ここから//入力高速化ios::sync_with_stdio(false);cin.tie(0);int N;cin >> N;int ans=0;while(N!=1){if(N%2==0){N/=2;}else{N++;}ans++;}cout << ans << endl;//ここまで//cout << "debug" << endl;//cout << "ans" << endl;改行含む//printf("%.0f\n",ans);//小数点以下表示なし//printf("%.7f\n",p);//printf("%f\n",pow(2,ans.size()));return 0;}