# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1132712 | sitingfake | Sailing Race (CEOI12_race) | C++20 | 21 ms | 2376 KiB |
#include<bits/stdc++.h>
using namespace std;
#define execute cerr << "Time elapsed: " << (1.0 * clock() / CLOCKS_PER_SEC) << "s";
#define ll long long
#define ii pair<int,int>
#define se second
#define fi first
#define iii pair<int,ii>
#define all(v) v.begin(),v.end()
#define bit(x,i) ((x>>(i))&1)
#define off(x,i) (x^(1<<(i)))
#define ms(d,x) memset(d,x,sizeof(d))
#define sitingfake 1
#define orz 1
const int mod=1e9+7;
const long long linf=1e18+3;
const int inf=1e9;
const int maxarr=1e6+5;
const double pi=acos(-1);
const int dx[]={0,1,-1,0};
const int dy[]={1,0,0,-1};
const int maxn=505;
int n,k;
vector<int>a[maxn];
namespace sub1
{
int ccw[maxn][maxn],cw[maxn][maxn];
void solve()
{
for(int len=2;len<=n;len++)
{
for(int i=1;i<=n;i++)
{
int j=i+len-1;
if(j<=n)
{
for(int v:a[i])
{
if(i>j)
{
if(v<i&&v>j)
{
cw[i][j]=max(cw[i][j],1+max(ccw[v][i],cw[v][j]));
}
else if(v!=j)
{
ccw[i][j]=max(ccw[i][j],1+max(ccw[v][j],cw[v][i]));
}
}
else
{
if(v<i||v>j)
{
cw[i][j]=max(cw[i][j],1+max(ccw[v][i],cw[v][j]));
}
else if(v!=j)
{
ccw[i][j]=max(ccw[i][j],1+max(ccw[v][j],cw[v][i]));
}
}
}
}
j=i-len+1;
if(j>=1)
{
for(int v:a[i])
{
if(i>j)
{
if(v<i&&v>j)
{
cw[i][j]=max(cw[i][j],1+max(ccw[v][i],cw[v][j]));
}
else if(v!=j)
{
ccw[i][j]=max(ccw[i][j],1+max(ccw[v][j],cw[v][i]));
}
}
else
{
if(v<i||v>j)
{
cw[i][j]=max(cw[i][j],1+max(ccw[v][i],cw[v][j]));
}
else if(v!=j)
{
ccw[i][j]=max(ccw[i][j],1+max(ccw[v][j],cw[v][i]));
}
}
}
}
}
}
ii ans={0,0};
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(ccw[i][j]>ans.fi)
{
ans.fi=ccw[i][j];
ans.se=i;
}
if(cw[i][j]>ans.fi)
{
ans.fi=cw[i][j];
ans.se=i;
}
}
}
cout<<ans.fi<<"\n"<<ans.se;
}
}
signed main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n>>k;
for(int i=1;i<=n;i++)
{
int x;
while(cin>>x)
{
if(x==0) break;
a[i].push_back(x);
}
}
if(k==0) sub1::solve();
//execute;
}
/*
7 0
5 0
5 0
7 0
3 0
4 0
4 3 0
2 1 0
*/
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |