i trying solve problem in code chef named mchef (http://www.codechef.com/problems/mchef) . continuously getting error solution http://www.codechef.com/viewsolution/7488621. can't figure out error .
you making mistake ! arrays allocated using new freed heap using
delete []array; try code!
#include <bits/stdc++.h> using namespace std; long long max(long long x,long long y) { return (x>y)?x:y; } long long knapsack(unsigned int w, long long wt[], long long val[], unsigned int n) { long long i, w; long long k[n+1][w+1]; // build table k[][] in bottom manner (i = 0; <= n; i++) { (w = 0; w <= w; w++) { if (i==0 || w==0) k[i][w] = 0; else if (wt[i-1] <= w) k[i][w] = max(val[i-1] + k[i-1][w-wt[i-1]], k[i-1][w]); else k[i][w] = k[i-1][w]; } } return k[n][w]; } int main() { unsigned int t,n,k,m,l,r,m[5000][20],x,temp; long long *arr,sum=0,*v,i,*s,*c,j; unsigned int *idx; vector<int> *l,*r; set <long long> iset; cin>>t; while(t--) { cin>>n>>k>>m; sum=0; arr= new long long[n]; s= new long long[n]; v= new long long[n]; c=new long long[m]; for(i=0;i<n;i++) { cin>>arr[i]; v[i]=-1*arr[i]; sum+=arr[i]; s[i]=1000000; } l=new vector<int>[n]; r=new vector<int>[n]; for(i=0;i<m;i++) { cin>>l>>r>>temp; l[l-1].push_back(i); r[r-1].push_back(i); c[i]=temp; } for(i=0;i<n;i++) { for(j=0;j<(int)l[i].size();j++) { iset.insert(c[l[i][j]]); //cout<<1; } s[i]=*(iset.begin()); for(j=0;j<(int)r[i].size();j++) { iset.erase(c[r[i][j]]); // cout<<(int)r[i].size()-1<<" "; } } // for(i=0;i<n;i++) // { // cout<<s[i]<<endl; // } //reduces knapsack problem cout<<sum+knapsack(k,s,v,n)<<endl; delete []arr; delete []s; delete []v; delete []l; delete []r; delete []c; } }
Comments
Post a Comment