Submission #231242

#TimeUsernameProblemLanguageResultExecution timeMemory
231242mohamedsobhi777Mountains (IOI17_mountains)C++14
20 / 100
5 ms384 KiB
#include "mountains.h"
#include <bits/stdc++.h>

using namespace std ; 

int maximum_deevs(std::vector<int> y) {
        int ret = 0 ; 
        int n = y.size() ; 
        bool gd[n+1][n+1] ; 
        memset(gd , 0 , sizeof gd) ; 
        
        for(int i = 0 ; i < n ;i++){
                for(int j = i+1 ; j< n;j++){
                        for(int k = i+1 ; k < j ;k++){

                                double slp = 1.0 *  (y[i] - y[j]) /( i - j) ;  
                                double o = -1 ; 
                                double c = y[i] - slp * i ; 
                                if(k * slp + y[k] * o + c < 0){
                                        gd[i][j] = gd[j][i] = 1; 
                                }
                                else gd[i][j] = gd[j][i] = 0 ; 
                                                           
                        }
                }
        }

        vector<int> dp(n+1 , 0) ; 

        for(int i =0 ; i < n;i++){
                dp[i] =1 ; 
                for(int j = 0 ; j < i ;j++){
                        if(gd[i][j]){
                                dp[i] = max(dp[i] , dp[j] +1) ; 
                        }
                }
                ret = max(ret , dp[i])  ;
        }

	return ret;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...