Submission #320858

#TimeUsernameProblemLanguageResultExecution timeMemory
320858knon0501Mountains (IOI17_mountains)C++14
40 / 100
1094 ms512 KiB
#include "mountains.h"
#include <vector>
#include<bits/stdc++.h>
using namespace std;

long long a[2005];
int dp[2005][2005];
int visit[2005][2005];
int n;

int f(int l,int r){
    if(l>r)return 0;
    if(l==r)return 1;
    if(r==l+1)return 1;
    if(visit[l][r])return dp[l][r];
    visit[l][r]=0;
    int i,j;

    for(i=l ; i<=r ; i++){
        int k=i-1;
        int x=1;
        for(int j=i-2 ; j>=l ; j--){
            if((a[i]-a[k])*(i-j)>=(a[i]-a[j])*(i-k)){
                x+=f(j+1,k-1);
                k=j;
            }
        }
        x+=f(l,k-1);
        dp[l][r]=max(dp[l][r],x);
    }
    return dp[l][r];
}

int maximum_deevs(std::vector<int> y) {
    n=y.size();
    for(int i=1 ; i<=n ; i++)
    {
        a[i]=y[i-1];
    }
	return f(1,n);
}

Compilation message (stderr)

mountains.cpp: In function 'int f(int, int)':
mountains.cpp:17:11: warning: unused variable 'j' [-Wunused-variable]
   17 |     int i,j;
      |           ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...