제출 #1357503

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

#define ll long long

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


ll solveBruteforce(ll x, vector<ll> a){
    if(x>100000) return 1;
    ll ans = 0;
    for(ll i = 0; i<100000; i++){
        vector<ll> t(64, 0);
        for(int j = 0; j<a.size(); j++) t[j] = a[j];
        ll isAns = 1;
        for(ll j = 0; j<t.size()-1; j++){
            if(((ll)((ll)1<<(ll)j)) & i){
                if(t[j] < x){
                    isAns = 0;
                    break;
                }
                t[j] -= x;
            }
            t[j+1] += t[j]/2;
        }
        ans += isAns;
    }
    
    return ans;
}


ll count_tastiness(ll x, vector<ll> A){
    vector<ll> a;
    a.assign(64, 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 solveBruteforce(x, a);
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…