제출 #1357496

#제출 시각아이디문제언어결과실행 시간메모리
1357496opeleklanos비스킷 담기 (IOI20_biscuits)C++20
0 / 100
989 ms2162688 KiB
#include <iostream>
#include <vector>
using namespace std;

#define ll long long

vector<ll> a;
vector<vector<ll>> dp;

ll solve(ll ind, ll inInd, ll x){
    if(ind == 149) return 1;
    if(dp[ind][inInd] != -1) return dp[ind][inInd];

    ll ans = 0;
    ans += solve(ind+1, inInd/2 + a[ind+1], x);
    if(inInd>=x) ans += solve(ind+1, (inInd-x)/2 + a[ind+1], x);
    return dp[ind][inInd] = ans;
}

ll count_tastiness(ll x, vector<ll> A){
    a.assign(150, 0);
    for(ll i = 0; i<A.size(); i++) a[i] = A[i];
    for(ll i = 0; i<a.size()-1; i++){
        if((a[i]>=x) && ((a[i] - x) % 2) == 0){
            ll k = ((a[i]-x)/2);
            a[i+1] += k;
            a[i] -= 2*k;
        }
        else if(a[i] >= x){
            ll k = ((a[i]-x-1)/2);
            a[i+1] += k;
            a[i] -= 2*k;
        }
    }

    dp.assign(a.size(), vector<ll>(3*x, -1));

    return solve(0, a[0], x);
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…