Cod sursa(job #921555)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 21 martie 2013 08:08:18
Problema Trie Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.1 kb
#include<cstdio>
#define M 9901
int n,i,a[21][21],l,k,j,s[21],r,p,t;
char e[150];
int main()
{freopen("matperm.in","r",stdin),freopen("matperm.out","w",stdout);
scanf("%d\n",&n);
for(i=1;i<=n;i++)
       {gets(e);
       for(j=1,k=0;e[k];k++)
       if(e[k]==' ')
               j++;
       else
               a[i][j]=a[i][j]*10+(e[k]-'0');}
for(k=1;k<=n;k++)
       {l=1,s[l]=0;
       while(l)
               {s[l]++;
               if(s[l]<=n-k+l)
                      if(l==k)
                              {for(p=i=1;i<=n;i++)
                                    {for(t=0,j=1;j<=l;j++)
                                          t+=a[i][s[j]];
                                    t=t-M*(t/M),p=p*t-M*(p*t/M);}
                              if(l&1)
                                    p=M-p;
                              r+=p;
                              if(r>=M)
                                    r-=M;}
                      else
                              l++,s[l]=s[l-1];
               else
                      l--;}}
if(n&1)
       r=M-r;
printf("%d",r);
return 0;}