답안 #473234

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
473234 2021-09-15T10:44:00 Z Ahmed_Solyman San (COCI17_san) C++14
컴파일 오류
0 ms 0 KB
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

ll n,k;
ll dp[45][45];
vector<ll>a(45),b(45);

ll solve(ll i,ll prev,ll sum){
    if(i==n)return 0;
    ll &ret=dp[i][prev][sum];
    if(~ret)return ret;
    ll Take=0;
    ll notTake=solve(i+1,prev,sum);
    if(a[i]>=a[prev]){
        Take=solve(i+1,i,sum+b[i])+(sum+b[i]>=k);
    }
    return ret=Take+notTake;
}
int main()
{
    memset(dp,-1,sizeof(dp));
    cin>>n>>k;
    for(ll i=0;i<n;i++)cin>>a[i]>>b[i];
    if(n<=20){
        ll ans=0;
        for(ll mask=0;mask<(1<<n);mask++){
            ll sum=0,prev=44;
            for(ll i=0;i<n;i++){
                if((1<<i)&mask){
                    if(a[i]>=a[prev]){
                        sum+=b[i];
                    }
                    else{
                        sum=-1;
                        break;
                    }
                    prev=i;
                }
            }
            if(sum>=k)ans++;
        }
        cout<<ans<<endl;
    }
    else{
        cout<<solve(0,44,0)<<endl;
    }
    return 0;
}

Compilation message

san.cpp: In function 'll solve(ll, ll, ll)':
san.cpp:13:24: error: invalid types 'll {aka long long int}[ll {aka long long int}]' for array subscript
   13 |     ll &ret=dp[i][prev][sum];
      |                        ^