Submission #205292

#TimeUsernameProblemLanguageResultExecution timeMemory
205292kshitij_sodaniBali Sculptures (APIO15_sculpture)C++17
16 / 100
258 ms27900 KiB
#include <iostream> #include <bits/stdc++.h> using namespace std; typedef long long int llo; #define mp make_pair #define pb push_back #define a first #define b second #define endl "\n" int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); int n,a,b; cin>>n>>a>>b; int it[n]; for(int i=0;i<n;i++){ cin>>it[i]; } int sa=50*17; int dp[n][n][sa]; memset(dp,0,sizeof(dp)); /* vector<int> mm[sa]; vector<int> nn[sa]; for(int mask=0;mask<sa;mask++){ for(int submask = mask; ; submask = (submask - 1) & mask) { mm[mask].pb(submask); nn[submask].pb(mask); if(submask == 0) break; } }*/ dp[0][0][it[0]]=1; /*for(int i=0;i<mm[it[0]].size();i++){ dp[0][0][mm[it[0]]][i]=1; }*/ int pre[n]; pre[0]=it[0]; for(int i=1;i<n;i++){ pre[i]=pre[i-1]+it[i]; } for(int i=1;i<n;i++){ for(int j=0;j<i+1;j++){ if(j==0){ dp[i][0][pre[i]]=1; /*if(pre[i]==0){ //cout<<i<<" "<<j<<endl; }*/ continue; } for(int k=0;k<i;k++){ for(int l=0;l<sa;l++){ if(dp[k][j-1][l]==1){ int no=(pre[i]-pre[k])|l; /*if(no==0){ //cout<<"NNNNNNNNNNN"<<endl; }*/ dp[i][j][no]=1; // //cout<<no<<endl; /*if(i==n-1){ //cout<<no<<endl; }*/ } } } } // //cout<<dp[5][1][0]<<":::::::::::::::::"<<endl; } int ma=sa; for(int i=a-1;i<b;i++){ for(int j=0;j<sa;j++){ ////cout<<n-1<<" "<<i<<" "<<j<<" "<<dp[n-1][i][j]<<endl; if(dp[n-1][i][j]==1){ /*if(j<ma){ //cout<<i<<" "<<j<<endl; }*/ ma=min(ma,j); } } } cout<<ma<<endl; /*int nno=8|3; //cout<<nno<<endl; */ return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...