Submission #132814

#TimeUsernameProblemLanguageResultExecution timeMemory
132814DanerZeinRoller Coaster Railroad (IOI16_railroad)C++14
0 / 100
254 ms165456 KiB
#include "railroad.h"
#include <bits/stdc++.h>
#define MAX 1000000010
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){
  // cout<<id<<" "<<mask<<" "<<endl;
  if(mask==l)return 0;
  if(dp[id][mask]!=-1){
    return dp[id][mask];
  }
  long long r=MAX;
  for(int i=0;i<tam;i++){
    if((mask & (1<<i))==0){
      long long newmask=mask|(1<<i);
      r=min(r,tsp(i,newmask)+dist[id][i]);
    }
  }
  return dp[id][mask]=r;
}
long long plan_roller_coaster(std::vector<int> s, std::vector<int> t) {
  tam=t.size();
  memset(dp,-1,sizeof dp);
  for(long long i=0;i<s.size();i++){
    for(long long j=i+1;j<s.size();j++){
      long long d=t[i]-s[j];
      if(d>=0){
	dist[i][j]=d;
      }
      else{
	dist[i][j]=0;
      }
      d=t[j]-s[i];
      if(d>=0){
	dist[j][i]=d;
      }
      else{
	dist[j][i]=0;
      }
    }
  }
  /*for(int i=0;i<t.size();i++){
    for(int j=0;j<t.size();j++){
      cout<<dist[i][j]<<" ";
    }
    cout<<endl;
    }*/
  l=(1<<s.size())-1;
  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:26:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(long long i=0;i<s.size();i++){
                     ~^~~~~~~~~
railroad.cpp:27:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(long long 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...