結果

問題 No.104 国道
ユーザー tree big
提出日時 2020-10-03 02:07:39
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 2 ms / 5,000 ms
コード長 1,149 bytes
コンパイル時間 1,337 ms
コンパイル使用メモリ 167,332 KB
実行使用メモリ 6,944 KB
最終ジャッジ日時 2024-07-18 03:32:47
合計ジャッジ時間 1,965 ms
ジャッジサーバーID
(参考情報)
judge1 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 16
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
#define FOR(i, a, b) for (int i=a; i<(b); i++)
#define range(a) a.begin(), a.end()
#define endl "\n"
#define Yes() cout << "Yes" << endl
#define No() cout << "No" << endl
#define MP make_pair
const unsigned long long mod = 1e9 + 7;
const long long INF = 1LL<<60;
const int dx[4]={1,0,-1,0};
const int dy[4]={0,1,0,-1};
void chmin(long long &a, long long b) { if (a > b) a = b; }
void chmax(long long &a, long long b) { if (a < b) a = b; }

//https://algo-logic.info/calc-pow/
template<typename T>
T pow(T x, long long n) {
    T ret = 1;
    while (n > 0) {
        if (n & 1) ret = ret * x;  // n の最下位bitが 1 ならば x^(2^i) をかける
        x = x * x ;
        n >>= 1;  // n を1bit 左にずらす
    }
    return ret;
}

int main(void){
	ios::sync_with_stdio(0);
	cin.tie(0);
	string S;
	cin >> S;
	ll ans = pow<ll>(2, S.size());
	if(S==""){
		cout << 1 << endl;
		return 0;
	}
	FOR(i,0,S.size()){
		if(S.at(i)=='R'){
			ans += pow<ll>(2, S.size() - i - 1);
		}
	}

	cout << ans << endl;

	return 0;
}

0