제출 #93203

#제출 시각아이디문제언어결과실행 시간메모리
93203annastKronican (COCI16_kronican)C++14
50 / 100
2077 ms380 KiB
#include <bits/stdc++.h>

using namespace std;
int n,k,a[25][25],s,ans;
bool kt[25];
void Try(int i)
{
    if (s>ans) return;
    if (i==k)
    {
        ans=min(s,ans);
        return;
    }
    for (int l=1;l<=n;l++)
        if (kt[l])
            for (int j=1;j<=n;j++)
                if (l!=j && kt[j])
    {
        kt[l]=false;
        s+=a[l][j];
        Try(i-1);
        s-=a[l][j];
        kt[l]=true;
    }
}
int main()
{
    //freopen("kronican.inp","r",stdin);
    //freopen("kronican.out","w",stdout);
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cin>>n>>k;
    for (int i=1;i<=n;i++)
        for (int j=1;j<=n;j++) cin>>a[i][j];
    memset(kt,true,sizeof(kt));
    s=0;ans=1e9;
    Try(n);
    cout<<ans;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...