Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <math.h>
- using namespace std;
- int sw;
- int verif(int st[],int k)
- {
- for( int i=0;i<k;i++)
- {
- if(st[k]==st[i] || k-i== fabs(st[k]-st[i]))
- return 0;
- }
- return 1;
- }
- void afis(int st[],int n )
- {
- for (int i=0;i<n;++i)
- {
- for(int j=0;j<n;++j)
- if (j==st[i]) cout<<"*";
- else
- cout<<"-";
- cout<<endl;
- }
- }
- void backtrack(int st[],int k,int n)
- {
- if(k==n)
- {
- afis(st,n);
- sw=1;
- }
- else if(sw==0)
- {
- for(int i=0;i<n;++i)
- {
- st[k]=i;
- if(verif(st,k) || k == 0) backtrack(st,k+1,n);
- }
- }
- }
- int main()
- {
- int n,st[20]= {0};
- cin>>n;
- backtrack(st,0,n);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement