Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- const int N = 5;
- int board[N][N];
- int chess[N][N];
- int abs(int a){
- return (a>0 ? a : -a);
- }
- void zeroIt(){
- for(int x = 0; x < N; x++){
- for(int y = 0; y < N; y++){
- chess[x][y]=0;
- }
- }
- }
- bool isSafe(int w, int k){
- if(w==0)return true;
- for(int i = 0; i < N; i++){
- if(chess[w-1][i] == 1){
- if(abs(k-i) < 1)return false;
- }
- }
- return true;
- }
- bool rek(int n, int suma){
- if(n == N and suma == 0){
- return true;
- }
- bool kurwa = false;
- for(int i = 0; i < N; i++){
- if(n==N){
- }
- if(isSafe(n, i)){
- chess[n][i]=1;
- kurwa = rek(n++, suma+=board[n][i]);
- }
- chess[n][i]=0;
- suma-=board[n][i];
- }
- return kurwa;
- }
- void print(){
- for(int x = 0; x < N; x++){
- for(int y = 0; y < N; y++){
- cout<<chess[x][y] << " ";
- }
- cout<<endl;
- }
- }
- int main() {
- zeroIt();
- for(int x = 0; x < N; x++){
- for(int y = 0; y < N; y++){
- int m;
- cin >>m;
- chess[x][y] = m;
- }
- cout << endl;
- }
- if(rek(0, 0)){
- cout<<"a mz";
- print();
- }else {
- cout << " CHUJ";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement