Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Max гр.5304
- #include <iostream>
- #include <fstream>
- using namespace std;
- #include <iostream>
- using namespace std;
- int const size_arr = 8;
- int num_fig=0;
- int field[size_arr][size_arr];
- int num_result=0;
- int num_fig_on_field=0;
- int zep=0;
- void print()
- {
- /* ofstream out("data.txt");
- if(!out)
- {
- cout<<"File wasn't opened\n";
- return 1;
- }*/
- for(int i=0; i<size_arr;i++)
- {
- for(int j=0; j<size_arr; j++ )
- {
- cout<<field[i][j]<<" ";
- }
- cout << "\n";
- }
- cout <<"\n";
- return;
- }
- bool check_location(int x, int y)// х - строка, y - столбец
- {
- for(int i = 1; i<=x && y-i>=0; i++)
- {
- if(field[x-i][y-i])
- {
- return false;
- }
- }
- for(int i=1;x-i>=0 && y+i<=size_arr-1; i++)
- {
- if(field[x-i][y+i])
- {
- return false;
- }
- }
- for(int i=1; x+i<=size_arr-1 && y-i>=0; i++ )
- {
- if(field[x+i][y-i])
- {
- return false;
- }
- }
- for(int i=1; x+i<=size_arr-1 && y+i<=size_arr-1; i++ )
- {
- if(field[x+i][y+i])
- {
- return false;
- }
- }
- return true;
- }
- void put_fig(int a, int b)//а - cтрока, b - столбец
- {
- if(check_location(a,b))
- {
- field[a][b]=1;
- num_fig_on_field++;
- if(num_fig_on_field==num_fig)
- {
- // print();
- field[a][b]=0;
- num_fig_on_field--;
- num_result++;
- }
- if((field[size_arr-1][size_arr-1]==1) && (num_fig_on_field != num_fig))
- {
- field[size_arr-1][size_arr-1]=0;
- num_fig_on_field--;
- }
- }
- if(a!=size_arr-1 )
- {
- mark1:
- put_fig(a+1,b);//ставим по столбцу
- if(field[a][b]==1)
- {
- field[a][b]=0;
- num_fig_on_field--;
- goto mark1;
- }
- return;
- }
- if(a==size_arr-1 && b!=size_arr-1)
- {
- mark2:
- put_fig(0,b+1);//переходим на новый столбец
- if(field[a][b]==1)
- {
- field[a][b]=0;
- num_fig_on_field--;
- goto mark2;
- }
- return;
- }
- if(a==size_arr-1 && b==size_arr-1)
- {
- return;
- }
- }
- int main(int argc, char *argv[])
- {
- cout<<"Enter num figures: ";
- cin>>num_fig;
- for(int i=0; i<size_arr;i++)
- {
- for(int j=0; j<size_arr; j++ )
- {
- field[i][j]=0;
- }
- }
- put_fig(0,0);
- cout<<num_result;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement