結果

問題 No.381 名声値を稼ごう Extra
ユーザー IL_mstaIL_msta
提出日時 2017-01-08 21:54:52
言語 C++11
(gcc 11.4.0)
結果
TLE  
実行時間 -
コード長 1,927 bytes
コンパイル時間 1,964 ms
コンパイル使用メモリ 95,804 KB
実行使用メモリ 8,760 KB
最終ジャッジ日時 2023-08-22 18:37:25
合計ジャッジ時間 10,184 ms
ジャッジサーバーID
(参考情報)
judge11 / judge15
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 1 ms
4,380 KB
testcase_01 TLE -
権限があれば一括ダウンロードができます

ソースコード

diff #

#define _USE_MATH_DEFINES
 
#include <iostream>
#include <iomanip>
#include <sstream>
 
#include <algorithm>
#include <cmath>
 
#include <string>
#include <queue>
#include <vector>
#include <complex>
#include <set>
#include <map>
#include <stack>
#include <list>

#include <valarray>

#include<cassert>//assert();
//#include <random>//xAOJ
/////////
#define REP(i, x, n) for(int i = x; i < n; i++)
#define rep(i,n) REP(i,0,n)
#define P(p) cout<<(p)<<endl;
 
#define PII pair<int,int>
/////////
typedef long long LL;
typedef long double LD;
typedef unsigned long long ULL;
/////////
using namespace::std;
/////////
/////////

vector<int> to_num(string str){
	int len = str.length();
	vector<int> ans = vector<int>(len);
	string temp;
	for(int i= 0;i<len;++i){
		temp = str[len-i-1];
		ans[i] = stoi( temp );
	}
	return ans;
}
void view( vector<int> v){
	vector<int>::iterator itr,end;
	itr = v.begin();
	end = v.end();
	for(;itr != end;++itr){
		cout << (*itr);
	}
	cout << endl;
}
class vnum{
public:
	vector<int> num;
	int len;
	void set(string str){
		num = to_num(str);
		len = numLen();
	}
	int numLen(){
		int Max = num.size();
		int i;
		for(i= Max-1;i>=0;--i){
			if( num[i] != 0){
				break;
			}
		}
		return i+1;
	}
	bool mod2(){//%2
		bool ans = false;
		if( num[0] % 2 ){
			ans = true;
		}
		num[0] = num[0] / 2;
		int temp;
		for(int i = 1; i< len;++i){
			temp = num[i]*10;
			temp /= 2;
			num[i] = temp/10;
			num[i-1] += temp%10;
		}
		len = numLen();
		return ans;
	}
	void view(){
		for(int i=len-1;i>=0;--i){
			cout << num[i];
		}cout << endl;
	}
};

void solve(){
	string str;
	cin >> str;
	vnum Num;
	Num.set(str);
	ULL count = 0;
	while(Num.len != 0){
		if( Num.mod2() ){
			++count;
		}
		//Num.view();
	}
	cout << count << endl;
}

int main(void){
    std::cin.tie(0); 
    std::ios::sync_with_stdio(false);
    std::cout << std::fixed;//
    //cout << setprecision(16);//
	
	solve();
	
	return 0;
}
0