Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- #include <vector>
- #include <queue>
- #include <algorithm>
- #include <string>
- #include <stack>
- #include <set>
- #include <map>
- #define pii pair <int,int>
- #define vec vector
- using namespace std;
- using ll = long long;
- using ld = long double;
- using db = double;
- void cv(vector <int> &v){
- for (auto x: v) cout<<x<<' ';
- cout<<"\n";
- }
- void cvl(vector <ll> &v){
- for (auto x: v) cout<<x<<' ';
- cout<<"\n";
- }
- void cvv(vector <vector <int> > &v){
- for (auto x: v) cv(x);
- cout<<"\n";
- }
- void cvb(vector <bool> v){
- for (bool x: v) cout<<x<<' ';
- cout<<"\n";
- }
- void cvs(vector <string> v){
- for (auto a: v){
- cout<<a<<"\n";
- }
- }
- vector <int> dx = {0, 1, 0, -1};
- vector <int> dy = {1, 0, -1, 0};
- vector <vector <int> > v;
- int n=7;
- bool gd(int x, int y){
- return x >= 0 && x < n && y >= 0 && y < n && !v[x][y];
- }
- int main()
- {
- ios::sync_with_stdio(0);
- cin.tie(0);
- cout.tie(0);
- cin>>n;
- v.assign(n, vector <int> (n,0));
- int i = 0,j=-1;
- int go=0;
- //cout<<i<<' '<<j<<"\n";
- int cnt=0;
- while (1){
- while (gd(i + dx[go], j + dy[go])){
- cnt++;
- i += dx[go];
- j += dy[go];
- v[i][j] = cnt;
- if (cnt == n*n){
- break;
- }
- }
- go++;
- go%=4;
- if (cnt == n*n){
- break;
- }
- }
- cvv(v);
- }
Add Comment
Please, Sign In to add comment