Submission #537609

#TimeUsernameProblemLanguageResultExecution timeMemory
537609MinhAnhndSailing Race (CEOI12_race)C++14
40 / 100
443 ms16832 KiB
#include <bits/stdc++.h> #include <iostream> #define ll long long #define ull unsigned ll using namespace std; bool branches[501][501]={}; bool chaychua[501][501][2]={}; long N,K; long dp[501][501][2]={}; vector<long> dp1 [501][501][2] = {}; long depth = -1; long pre(long p){ if (p == 1) return N; return p-1; } long nex(long p){ if (p == N) return 0; return p+1; } long memo(long start, long end,long direction){ if (chaychua[start][end][direction]) return dp[start][end][direction]; chaychua[start][end][direction] = 1; //counter-clockwise; if (direction == 0){ for(long i = nex(start);i != end; i = nex(i)){ if (branches[start][i]){ dp[start][end][0] = max(dp[start][end][0],max(memo(i,end,0),memo(start,i,1))+1); } } } else{ for(long i = nex(start);i != end;i = nex(i)){ if (branches[end][i]){ dp[start][end][1] = max(dp[start][end][1],max(memo(i,end,0),memo(start,i,1))+1); } } } return dp[start][end][direction]; } int main(){ cin>>N>>K; long v,u=0; for(long i = 1;i<=N;i++){ cin>>v; while(v!=0){ branches[i][v]=1; cin>>v; } } long maxi = -1; long mem = 0; for(long i = 1;i<=N;i++){ //counter-clockwise long val = memo(i,i,0); if(val>=maxi){ maxi = val; mem = i; } } cout<<maxi<<endl<<mem<<endl; }

Compilation message (stderr)

race.cpp: In function 'int main()':
race.cpp:52:12: warning: unused variable 'u' [-Wunused-variable]
   52 |     long v,u=0;
      |            ^
#Verdict Execution timeMemoryGrader output
Fetching results...