답안 #531613

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
531613 2022-03-01T06:43:11 Z Koosha_mv Sailing Race (CEOI12_race) C++14
5 / 100
288 ms 2552 KB
#include <bits/stdc++.h>
using namespace std;
#define dbgv(v) cout<<#v<<" = "; f(i,0,v.size()) cout<<v[i]<<" "; cout<<endl
#define dbga(a,x,y) cout<<#a<<" = "; f(i,x,y) cout<<a[i]<<" "; cout<<endl
#define erorp(x) cout<<#x<<"={"<<(x.F)<<" , "<<x.S<<"}"<<endl
#define eror(x) cout<<#x<<'='<<(x)<<endl
#define f_(i,a,b) for(int i=a;i>=b;i--)
#define f(i,a,b) for(int i=a;i<b;i++)
#define nb(x) __builtin_popcount(x)
#define all(v) v.begin(),v.end()
#define bit(n,k) (((n)>>(k))&1)
#define Add(x,y) x=(x+y)%mod
#define maxm(a,b) a=max(a,b)
#define minm(a,b) a=min(a,b)
#define lst(x) x[x.size()-1]
#define sz(x) int(x.size())
#define mp make_pair
#define ll long long
#define pb push_back
#define S second
#define F first

const int N=505;

int n,k,ans,cnt,a[N],deg[N],dp[N][N],pd[N][N];
vector<int> vec,g[N];

void calcdp(int u,int x){
	for(auto v : g[u]){
		int dist=(v-u+n)%n;
		if(dist<=x){
			maxm(dp[u][x],dp[v][x-dist]+1);
			maxm(dp[u][x],pd[v][dist-1]+1);
		}
	}
	if(dp[u][x]+(k==1 && deg[u])>ans){
		vec.clear();
		ans=dp[u][x]+(k==1 && deg[u]);
	}
	if(dp[u][x]+(k==1 && deg[u])==ans){
		vec.pb(u);
	}
	//cout<<"dp "<<u<<" "<<x<<" -> "<<dp[u][x]<<endl;
}
void calcpd(int u,int x){
	for(auto v : g[u]){
		int dist=(u-v+n)%n;
		if(dist<=x){
			maxm(pd[u][x],pd[v][x-dist]+1);
			maxm(pd[u][x],dp[v][dist-1]+1);
		}
	}
	maxm(ans,pd[u][x]+(k==1 && deg[u]));
	//cout<<"pd "<<u<<" "<<x<<" -> "<<pd[u][x]<<endl;
}

int main(){
	ios:: sync_with_stdio(0), cin.tie(0), cout.tie(0);
	cin>>n>>k;
	//if(k==1) assert(0);
	f(i,0,n){
		int x;
		cin>>x;
		while(x>0){
			deg[x-1]=1;
			g[i].pb(x-1);
			cin>>x;
		}
	}
	f(t,1,n){
		f(i,0,n){
			calcdp(i,t);
			calcpd(i,t);
		}
	}
	f(i,0,n) if(dp[i][n-1]==ans || pd[i][n-1]==ans) cnt++;
	cout<<ans<<endl<<cnt;
}
/*
7 0
5 0
5 0
7 0
3 0
4 0
4 3 0
2 1 0
*/
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 332 KB Output isn't correct
2 Incorrect 1 ms 332 KB Output isn't correct
3 Incorrect 0 ms 332 KB Output isn't correct
4 Incorrect 1 ms 460 KB Output isn't correct
5 Incorrect 1 ms 460 KB Output isn't correct
6 Incorrect 1 ms 460 KB Output isn't correct
7 Incorrect 4 ms 588 KB Output isn't correct
8 Incorrect 2 ms 588 KB Output isn't correct
9 Incorrect 5 ms 716 KB Output isn't correct
10 Correct 12 ms 716 KB Output is correct
11 Incorrect 6 ms 768 KB Output isn't correct
12 Incorrect 16 ms 1164 KB Output isn't correct
13 Incorrect 32 ms 1564 KB Output isn't correct
14 Incorrect 55 ms 1928 KB Output isn't correct
15 Incorrect 159 ms 2444 KB Output isn't correct
16 Incorrect 213 ms 2536 KB Output isn't correct
17 Incorrect 212 ms 2396 KB Output isn't correct
18 Incorrect 66 ms 2252 KB Output isn't correct
19 Incorrect 288 ms 2548 KB Output isn't correct
20 Incorrect 288 ms 2552 KB Output isn't correct