Untitled
unknown
c_cpp
a month ago
842 B
3
Indexable
Never
void solve(vector<vector<int>> arr) { unordered_map<int,int> mp; int n=arr.size(),m=arr[0].size(); vector<int> ans; for(auto i:arr) { for(auto j:i) { mp[j]++; ans.push_back(j); } } sort(ans.begin(),ans.end(),[&](int a,int b){ if(mp[a]!=mp[b]) return mp[a]>mp[b]; else return a>b; }); int idx=0; for(int i=0;i<n;i++) { int x=i,y=0; while(x>=0 && y<m) { arr[x][y]=ans[idx++]; x--; y++; } } for(int i=1;i<m;i++) { int x=n-1,y=i; while(x>=0 && y<m) arr[x--][y++]=ans[idx++]; } for(int i=0;i<m;i++) { for(int j=0;j<n;j++) cout<<arr[j][i]<<" "; cout<<endl; } }
Leave a Comment