Cod sursa(job #901826)

Utilizator a96tudorAvram Tudor a96tudor Data 1 martie 2013 11:51:29
Problema Castel Scor 0
Compilator cpp Status done
Runda simulare_10 Marime 0.85 kb
#include<cstdio>
using namespace std;
int a[30000],v[30000];
int n,m,p,i,MAX=0;
inline void verif()
{
    int i,k=0;
    bool ok[30000];
    int cop[30000];
    ok[a[p]]=true;
    for (i=1;i<=n;i++)
    {
        if (v[i]==0) { ok[a[i]]=true;
                       cop[++k]=i;
                     }
    }
    for (i=1;i<=k;i++)
        if (!ok[a[cop[i]]]) return;
    if (k>MAX) MAX = k;
}
inline void back(int k)
{
    int i;
    if (k>n) verif();
        else { for (i=0;i<=1;i++)
                {
                    v[k]=i;
                    back(k+1);
                }
                }
}
int main()
{
    freopen("castel.in","r",stdin);
    freopen("castel.out","w",stdout);
    scanf("%d%d%d",&n,&m,&p);
    n=n*m;
    for (i=1;i<=n;i++)
       scanf("%d",&a[i]);
    back(1);
    printf("%d",MAX);
    return 0;
}