제출 #132869

#제출 시각아이디문제언어결과실행 시간메모리
132869DanerZeinRoller Coaster Railroad (IOI16_railroad)C++14
11 / 100
1082 ms169336 KiB
#include "railroad.h" #include <bits/stdc++.h> #define MAX 9000000000 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; printf("id: %d mask: %d\n",id,mask); 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[i][id]); printf("i: %d newmask: %d r: %d\n",i,newmask,r); } } return dp[id][mask]=r; } long long plan_roller_coaster(std::vector<int> s, std::vector<int> t) { long long r; tam=t.size(); if(tam<=8){ vector<int>a,b; for(int i=0;i<tam;i++){ a.push_back(i); } long long mi,d; mi=MAX; do{ d=0; long long v=1; bool sw=0; for(int i=0;i<a.size();i++){ if(i==0){ v=t[a[i]]; } else{ int aux=v-s[a[i]]; if(aux>0){ d+=v-s[a[i]]; } v=t[a[i]]; } } // cout<<mi<<" "<<d<<endl<<" "<<sw; if(sw==0){ if(mi>d){ mi=min(mi,d); b=a; r=mi; } } /*for(int i=0;i<b.size();i++){ cout<<b[i]<<" "; } cout<<endl;*/ } while(next_permutation(a.begin(),a.end())); } else{ 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<s.size();i++){ for(int j=0;j<s.size();j++){ cout<<dist[i][j]<<" "; } cout<<endl; } cout<<endl; l=(1<<s.size())-1; long long r=tsp(0,1); for(int i=0;i<tam;i++){ for(int j=0;j<l+1;j++){ cout<<dp[i][j]<<" "; } cout<<endl; } } return r; }

컴파일 시 표준 에러 (stderr) 메시지

railroad.cpp: In function 'long long int tsp(long long int, long long int)':
railroad.cpp:10:37: warning: format '%d' expects argument of type 'int', but argument 2 has type 'long long int' [-Wformat=]
   printf("id: %d mask: %d\n",id,mask);
                                     ^
railroad.cpp:10:37: warning: format '%d' expects argument of type 'int', but argument 3 has type 'long long int' [-Wformat=]
railroad.cpp:20:53: warning: format '%d' expects argument of type 'int', but argument 3 has type 'long long int' [-Wformat=]
       printf("i: %d newmask: %d r: %d\n",i,newmask,r);
                                                     ^
railroad.cpp:20:53: warning: format '%d' expects argument of type 'int', but argument 4 has type 'long long int' [-Wformat=]
railroad.cpp: In function 'long long int plan_roller_coaster(std::vector<int>, std::vector<int>)':
railroad.cpp:39:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0;i<a.size();i++){
              ~^~~~~~~~~
railroad.cpp:68:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(long long i=0;i<s.size();i++){
                     ~^~~~~~~~~
railroad.cpp:69:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(long long j=i+1;j<s.size();j++){
                         ~^~~~~~~~~
railroad.cpp:86:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int i=0;i<s.size();i++){
               ~^~~~~~~~~
railroad.cpp:87:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int j=0;j<s.size();j++){
                 ~^~~~~~~~~
railroad.cpp:94:13: warning: unused variable 'r' [-Wunused-variable]
   long long r=tsp(0,1);
             ^
railroad.cpp:102:10: warning: 'r' may be used uninitialized in this function [-Wmaybe-uninitialized]
   return r;
          ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...