Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Author: madhukesh
- // Created: 2021-05-11 23:25:18
- /*Success isn't permanent, failure isn't fatal,
- it's the courage to continue that counts.*/
- #include <bits/stdc++.h>
- using namespace std;
- vector<int> spiralOrder(const vector<vector<int> > &A)
- {
- vector<int>ans;
- int n=A.size();
- if(n==0)
- return ans;
- int m=A[0].size();
- int l=0,r=m-1,u=0,d=n-1;
- int dir=0;
- while((l<=r)&&(u<=d))
- {
- if(dir==0)
- {
- for(int i=l;i<=r;i++)
- ans.push_back(A[u][i]);
- u++;
- }
- else if(dir==1)
- {
- for(int i=u;i<=d;i++)
- ans.push_back(A[i][r]);
- r--;
- }
- else if(dir==2)
- {
- for(int i=r;i>=l;i--)
- ans.push_back(A[d][i]);
- d--;
- }
- else
- {
- for(int i=d;i>=u;i--)
- ans.push_back(A[i][l]);
- l++;
- }
- dir=(dir+1)%4;
- }
- return ans;
- }
- void solve()
- {
- int n,m;
- cin>>n>>m;
- vector<vector<int>>arr(n,vector<int>(m,0));
- for(int i=0;i<n;i++)
- {
- for(int j=0;j<m;j++)
- cin>>arr[i][j];
- }
- vector<int>ans=spiralOrder(arr);
- for(int i=0;i<ans.size();i++)
- cout<<ans[i]<<" ";
- return;
- }
- int main()
- {
- int t=1;
- //sfi(t)
- while(t--)
- solve();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement