Submission #117108

#TimeUsernameProblemLanguageResultExecution timeMemory
117108LawlietDetecting Molecules (IOI16_molecules)C++14
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> #include "molecules.h" #define MAX 10010 using namespace std; int N, L, U; int indAnt[MAX]; int valueAnt[MAX]; bool dp[MAX]; vector<int> ans; void add(int w, int i) { for(int g = U ; g >= w ; g--) { if(dp[g - w] && !dp[g]) { dp[g] = true; indAnt[g] = i; valueAnt[g] = w; } } } int[] find_subset(int l, int u, int[] w) { L = l; U = u; dp[0] = true; ans.clear(); memset(dp , false , sizeof(dp)); memset(indAnt , -1 , sizeof(indAnt)); memset(valueAnt , -1 , sizeof(valueAnt)); int ind = 0; while( w[ind] != 0 ) { add( w[ind] , ind); ind++; } int can = -1; for(int g = L ; g <= U ; g++) if(dp[g]) can = g; if(can == -1) { int resp[0]; //return resp; //printf("N\n"); return resp; } while( indAnt[can] != -1 ) { ans.push_back( indAnt[can] ); can -= valueAnt[can]; } int resp[ans.size()]; for(int g = 0 ; g < ans.size() ; g++) resp[g] = ans[g]; return resp; } /*int main() { scanf("%d %d %d",&N,&L,&U); int W[N]; for(int g = 0 ; g < N ; g++) scanf("%d",&W[g]); find_subset(L , U , W); }*/

Compilation message (stderr)

molecules.cpp:31:4: warning: decomposition declaration only available with -std=c++1z or -std=gnu++1z
 int[] find_subset(int l, int u, int[] w)
    ^
molecules.cpp:31:4: error: decomposition declaration cannot be declared with type 'int'
 int[] find_subset(int l, int u, int[] w)
    ^~
molecules.cpp:31:4: note: type must be cv-qualified 'auto' or reference to cv-qualified 'auto'
molecules.cpp:31:4: error: empty decomposition declaration
molecules.cpp:31:7: error: expected initializer before 'find_subset'
 int[] find_subset(int l, int u, int[] w)
       ^~~~~~~~~~~