답안 #95024

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
95024 2019-01-26T22:14:15 Z Rouge_Hugo Kronican (COCI16_kronican) C++14
80 / 100
71 ms 16248 KB
#include <bits/stdc++.h>
using namespace std;
int n,k;
long long  d[1000009];
long long  a[22][22];	
long long  dp(int mask,int y)
{
	if (y==k)return 0;
	if(d[mask]!=-1)return d[mask];
	long long  mn=10000000000;
	long long  u=10000000000;
	for(int i=0;i<n;i++)
	{
		int l=21;
		mn=10000000000;
		if (((1<<i)&mask)==(1<<i))
		{
			for(int j=0;j<n;j++)
			{
				if (i!=j&&(((1<<j)&mask)==(1<<j)))
				{
					mn=min(mn,a[i][j]);
				}
			}
			u=min(u,dp(mask-(1<<i),y-1)+mn);
		}
	}
	return d[mask]=u;
}
int main()
{ios_base::sync_with_stdio(false);
cin.tie(NULL);

	memset (d,-1,sizeof d);
	cin>>n>>k;
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<n;j++)
		{
			cin>>a[i][j];
		}
	}
	cout<<dp((1<<n)-1,n);
}

Compilation message

kronican.cpp: In function 'long long int dp(int, int)':
kronican.cpp:14:7: warning: unused variable 'l' [-Wunused-variable]
   int l=21;
       ^
# 결과 실행 시간 메모리 Grader output
1 Correct 7 ms 8184 KB Output is correct
2 Correct 7 ms 8184 KB Output is correct
3 Correct 7 ms 8184 KB Output is correct
4 Correct 7 ms 8156 KB Output is correct
5 Correct 14 ms 8316 KB Output is correct
6 Correct 21 ms 8184 KB Output is correct
7 Correct 33 ms 8184 KB Output is correct
8 Correct 71 ms 8208 KB Output is correct
9 Runtime error 15 ms 16248 KB Execution killed with signal 11 (could be triggered by violating memory limits)
10 Runtime error 16 ms 16248 KB Execution killed with signal 11 (could be triggered by violating memory limits)