Submission #136991

#TimeUsernameProblemLanguageResultExecution timeMemory
136991DanerZeinShortcut (IOI16_shortcut)C++14
0 / 100
2 ms376 KiB
#include "shortcut.h"
#include <bits/stdc++.h>
#define MA 5100000000000000010
using namespace std;
long long ne,N;
long long MAX=MA;
vector<int> di(200),s(200);
long long diam(int a,int b){
  long long r=-1;
  for(int i=0;i<N;i++){
    for(int j=i+1;j<N;j++){
      long long op1=di[i]+di[j]+abs(s[j]-s[i]);
      long long op2=(di[i]+di[j]+abs(s[i]-s[a])+abs(s[j]-s[b])+ne);
      // cout<<op1<<" "<<op2<<endl;
      op1=di[i]+di[j];
      op1+=abs(s[j]-s[i]);
      op2=di[i]+di[j];
      op2+=abs(s[i]-s[a])+abs(s[j]-s[b])+ne;
      r=max(r,min(op1,op2));
      // cout<<op1<<" "<<op2<<endl;
      //	printf("%d %d %d %d %d %d %d\n",di[i],di[j],s[j],s[i],s[a],s[b],ne);
    }
  }
  return r;
}
long long find_shortcut(int  n, std::vector<int> l, std::vector<int> d, int c){ 
  ne=c;
  fill(di.begin(),di.end(),0);
  fill(s.begin(),s.end(),0);
  N=n;
  long long acum=0;
  for(int i=0;i<=l.size();i++){
    s[i]=acum;
    acum+=l[i];
  }
  di=d;
  long long mi=MAX;
  for(int i=0;i<n;i++){
      for(int j=i+1;j<n;j++){
	long long rp=diam(i,j);
	mi=min(rp,mi);
      }
    }
	return mi;
}

Compilation message (stderr)

shortcut.cpp: In function 'long long int find_shortcut(int, std::vector<int>, std::vector<int>, int)':
shortcut.cpp:32:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int i=0;i<=l.size();i++){
               ~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...