提出 #50156221


ソースコード 拡げる

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define int long long
#define IOS ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0)
#define mod 1000000007
#define N 100007
#define all(x) x.begin(),x.end()
ll binmultiply(ll a,ll b,ll m){ll res=0;while(b>0){if(b&1)res=(res+a)%m;a=(a+a)%m;b=b>>1;}return res;}
ll expo(ll a, ll b, ll m) {ll res = 1; while (b > 0) {if (b & 1)res = binmultiply(res,a,m)% m; a = binmultiply(a,a,m) % m; b = b >> 1;} return res;}
ll mminvprime(ll a, ll b) {return expo(a, b - 2, b);}
ll mod_add(ll a, ll b, ll m) {a = a % m; b = b % m; return (((a + b) % m) + m) % m;}
ll mod_mul(ll a, ll b, ll m) {a = a % m; b = b % m; return (((a * b) % m) + m) % m;}
ll mod_sub(ll a, ll b, ll m) {a = a % m; b = b % m; return (((a - b) % m) + m) % m;}
ll mod_div(ll a, ll b, ll m) {a = a % m; b = b % m; return (mod_mul(a, mminvprime(b, m), m) + m) % m;}  //only for prime m

map<int,int> dp;

int solve2(int x){
    if(x<2) return 0;
    if(dp.find(x)!=dp.end()){
        return dp[x];
    }
    if(x%2==0){
        dp[x] = x + 2*solve2(x/2);
    }
    else{
        dp[x] = solve2(x/2) + solve2((x+1)/2) + x;
    }
    return dp[x];
}
    
    
void solve()
{
    int n;cin >> n;
    cout << solve2(n) << endl;
}
    
    
int32_t main()
{
    IOS;
    ll t=1;
    //cin >> t;
    while(t--)
        {
            solve();
        }
    return 0;
}

提出情報

提出日時
問題 C - Divide and Divide
ユーザ Rohith16
言語 C++ 20 (gcc 12.2)
得点 300
コード長 1434 Byte
結果 AC
実行時間 1 ms
メモリ 3612 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 300 / 300
結果
AC × 3
AC × 11
セット名 テストケース
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_random_00.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 02_corner_00.txt, 02_corner_01.txt, 03_min_00.txt
ケース名 結果 実行時間 メモリ
00_sample_00.txt AC 1 ms 3440 KiB
00_sample_01.txt AC 1 ms 3468 KiB
00_sample_02.txt AC 1 ms 3428 KiB
01_random_00.txt AC 1 ms 3612 KiB
01_random_01.txt AC 1 ms 3528 KiB
01_random_02.txt AC 1 ms 3396 KiB
01_random_03.txt AC 1 ms 3472 KiB
01_random_04.txt AC 1 ms 3612 KiB
02_corner_00.txt AC 1 ms 3464 KiB
02_corner_01.txt AC 1 ms 3528 KiB
03_min_00.txt AC 1 ms 3320 KiB