Submission #136623

#TimeUsernameProblemLanguageResultExecution timeMemory
136623DanerZeinRoller Coaster Railroad (IOI16_railroad)C++14
0 / 100
246 ms165412 KiB
#include "railroad.h"
#include <bits/stdc++.h>
#define MAX 1000000000
using namespace std;
long long dp[100][100000];
long long dist[100][100];
long long l,tam;
long long tsp(long long id,long long mask){
  if(mask==(1<<tam)-1){
    return 0;
  }
  if(dp[id][mask]!=-1){
    return dp[id][mask];
  }
  long long r=MAX;
  //cout<<id<<" ";
  for(int i=0;i<tam;i++){
    if((mask & (1<<i))==0){
      // cout<<"0";
      long long newmask=mask|(1<<i);
       r=min(dist[id][i]+tsp(i,newmask),r);
    }
    else{
      //   cout<<"1";
    }
  }
  //cout<<endl;
    return dp[id][mask]=r;
}
long long plan_roller_coaster(std::vector<int> s, std::vector<int> t) {
   tam=s.size();
  for(int i=0;i<s.size();i++){
    for(int j=i+1;j<s.size();j++){
      int r1=t[i]-s[j];
      int r2=t[j]-s[i];
      // cout<<t[i]<<" "<<s[j]<<" "<<t[j]<<" "<<s[i]<<endl;
      r1=max(r1,0);
      r2=max(r2,0);
      dist[i][j]=r1;
      dist[j][i]=r2;
    }
  }
  memset(dp,-1,sizeof dp);
  long long r=tsp(0,1);
  
  return r;
}

Compilation message (stderr)

railroad.cpp: In function 'long long int plan_roller_coaster(std::vector<int>, std::vector<int>)':
railroad.cpp:32:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int i=0;i<s.size();i++){
               ~^~~~~~~~~
railroad.cpp:33:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int j=i+1;j<s.size();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...