Submission #364066

#TimeUsernameProblemLanguageResultExecution timeMemory
364066super_j6Sailing Race (CEOI12_race)C++14
0 / 100
592 ms9708 KiB
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <vector>
using namespace std;
#define endl '\n'
#define ll long long
#define pi pair<int, int>
#define f first
#define s second
 
const int mxn = 1000;
int n, k;
int dp[mxn][mxn][2];
vector<int> g[2][mxn];
 
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	
	cin >> n >> k;
	
	for(int i = 0, x; i < n; i++)
	for(cin >> x; x; cin >> x)
	for(int j = 0; j < 2; j++)
	for(int l = 0; l < 2; l++){
		int u = j * n + i, v = l * n + x - 1;
		g[0][u].push_back(v);
		g[1][v].push_back(u);
	}
	
	int ret = 0, x = 0;
	for(int i[2] = {0}; i[0] < 2 * n; i[0]++)
	for(i[1] = i[0]; i[1] < 2 * n && i[1] - i[0] < n; i[1]++)
	for(int j = 0; j < 2; j++){
		int &dpc = dp[i[0]][i[1]][j];
		for(int p = 0; p < 2; p++)
		for(int l : g[p][i[j ^ p]]) if(l >= i[0] && l <= i[1]){
			int ii[2];
			ii[j] = l, ii[!j] = i[!j];
			dpc = max(dpc, dp[ii[0]][ii[1]][j ^ p] + 1);
		}
		if(dpc > ret) ret = dpc, x = i[j];
	}
	
	cout << ret << " " << (x % n + 1) << endl;
	
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...