Submission #887170

#TimeUsernameProblemLanguageResultExecution timeMemory
887170VicBVicSailing Race (CEOI12_race)C++17
10 / 100
47 ms1628 KiB
#include <bits/stdc++.h> using namespace std; const int MN = 505; int d[MN][MN]; int n,k; bool adj[MN][MN]; int main() { cin>>n>>k; assert(k==0); for(int i=1;i<=n;i++) { int nr=-1; while(true) { cin>>nr; if(!nr) break; adj[i][nr]=1; } } for(int l=1;l<n;l++) { for(int i=1;i+l<=n;i++) { int j=i+l; for(int y=i+1;y<=j;y++) { if(adj[i][y]) d[i][j]=max(d[i][j],1 + max( d[y][i+1], d[y][j])); } for(int y=j-1;y>=i;y--) { if(adj[j][y]) d[j][i]=max(d[j][i],1 + max( d[y][j-1], d[y][i])); } } } int mx=0, mxc=0; for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { if(d[i][j]>mx) mx=d[i][j], mxc=i; } } cout<<mx<<'\n'<<mxc<<'\n'; return 0; } /* 7 0 5 0 5 0 7 0 3 0 4 0 4 3 0 2 1 0 5 2 */
#Verdict Execution timeMemoryGrader output
Fetching results...