Israt_afroz

Untitled

Oct 23rd, 2021 (edited)
31
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.57 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
  4. #define REP(i,x) for(int i=0;i<(int)(x);i++)
  5. #define REPS(i,x) for(int i=1;i<=(int)(x);i++)
  6. #define REPO(i,x) for(int i=x-1;i>=0;i--)
  7. #define ull unsigned long long int
  8. #define pii pair<int, int>
  9. #define FOR(i,a,b) for(int i=a;i<=b;i++)
  10. #define ROF(i,a,b) for(int i=a;i>=b;i--)
  11. #define pll pair<long long int, long long int>
  12. #define T int tc; cin>>tc;while(tc--)
  13. #define READ freopen("input.txt","r", stdin)
  14. #define WRITE(x) freopen (x,"w",stdout)
  15. #define SORT(v) sort(v.begin(),v.end())
  16. #define REV(v) reverse(v.begin(),v.end())
  17. #define mem(a,b) memset(a, b, sizeof(a))
  18. #define lcm(a, b) ((a / __gcd(a, b) ) * b)
  19. #define scanI(a) scanf("%d",&a)
  20. #define scanI2(a,b) scanI(a) , scanI(b)
  21. #define pf(a) printf("%d\n", a);
  22. #define pfl(a) printf("%lld\n", a);
  23. #define PI 2*acos(0.0)
  24. #define pb push_back
  25. #define eb emplace_back
  26. #define ll long long
  27. #define MAX 100005
  28. #define inf 1e15
  29. #define MOD -1000000000
  30. #define n0 cout<<"\n"
  31. #define base 31
  32. //ull has[1000001];
  33. //ull has1[1000001],po[1000001];
  34. //ull gethas(int L, int R)
  35. //{return (has[R] - (has[L - 1] * po[R - L + 1]));}
  36. /*bool sortby(const pair<int,int> &a, const pair<int,int> &b)
  37. {
  38. if(a.first==b.first) return a.second>b.second;
  39. else return a.first>b.first;
  40. }*/
  41. map<int,pair<int,int> >m;
  42. int dx[4]= {0,0,1,-1};
  43. int dy[4]= {1,-1,0,0};
  44. int dp[501][501];
  45. int main()
  46. {
  47. int n;
  48. cin>>n;
  49. memset(dp,0,sizeof(dp));
  50. queue<int>st;
  51. vector<int>vis(n+1,0);
  52. int ar[n][n]= {0};
  53. REP(i,n)
  54. {
  55. cin>>dp[i][i];
  56. st.push(dp[i][i]);
  57. m[dp[i][i]]= {i,i};
  58. vis[i+1]=i;
  59. ar[i][i]=1;
  60. }
  61.  
  62. while(!st.empty())
  63. {
  64. int p=st.front();
  65. if(vis[p]==0)
  66. {
  67. st.pop();
  68. continue;
  69. }
  70. int px=m[p].first,px1=m[p].second;
  71. int mm=1,mm1=1;
  72. int tot=0;
  73. REP(k,4)
  74. {
  75. int x=px+dx[k],y=px1+dy[k];
  76. if(x>=0 && x<n && y>=0 && y<=x && !ar[x][y])
  77. {
  78. mm=x;
  79. mm1=y;
  80. tot++;
  81. }
  82. }
  83. if(tot==1)
  84. {
  85. dp[mm][mm1]=dp[px][px1];
  86. m[p]= {mm,mm1};
  87. ar[mm][mm1]=1;
  88. vis[p]--;
  89.  
  90. continue;
  91. }
  92. st.pop();
  93. st.push(p);
  94. }
  95.  
  96.  
  97. REP(i,n)
  98. {
  99. REP(j,n)
  100. {
  101. if(j>i) break;
  102. cout<<dp[i][j]<<" ";
  103. }
  104. n0;
  105. }
  106. }
  107.  
Add Comment
Please, Sign In to add comment