#include<iostream>
#include<vector>
#include<cstring>
using namespace std;
bool mark[20];
vector<int> v[20];
int count=0,n;
void solve(int row)
{
if(row==n)count++;
else
for(int i=0;i<v[row].size();i++)
{
if(!mark[v[row][i]])
{
mark[v[row][i]]=true;
solve(row+1);
mark[v[row][i]]=false;
}
}
}
int main()
{
int x;
cin>>n;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
{
cin>>x;
if(x)v[i].push_back(j);
}
memset(mark,false,sizeof(mark));
solve(0);
cout<<count<<endl;
}
On Jul 14, 11:23 pm, shilpa gupta <[email protected]> wrote:
> if we have to find out no of possible outputs ...........then we can do this
> for(i=1;i<=n;i++)
> {
> ans=ans * no of 1s in ith row
> return(ans);}
>
> On Thu, Jul 14, 2011 at 11:46 PM, SkRiPt KiDdIe <[email protected]>wrote:
>
>
>
> > Will a Back-tracking solution suffice..??
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Algorithm Geeks" group.> To post to this group, send email
> > [email protected].
> > To unsubscribe from this group, send email
> > to>[email protected].
> > For more options, visit this group at
> >http://groups.google.com/group/algogeeks?hl=en.
>
> --
> shilpa gupta
> b tech 2nd year
> computer science and engineering
> mnnit allahabad
--
You received this message because you are subscribed to the Google Groups
"Algorithm Geeks" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/algogeeks?hl=en.