Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- int main(){
- int t; cin>>t;
- while(t--)
- {
- int n; cin>>n; int a[n+1]; for(int i=1;i<=n;i++) cin>>a[i];
- vector<int>last(n+1,0);
- map<int,int>mp;
- for(int i=1;i<=n;i++) mp[a[i]] = i;
- for(auto i:mp)
- {
- last[i.second] ++;
- }
- int x[n+1]; vector<int>sum(n+1,0);
- x[1] = 0; sum[1] = last[1];
- for(int i=2;i<=n;i++)
- {
- x[i] = sum[i-1];
- sum[i] = sum[i-1] + last[i];
- }
- vector<int>first(n+1,0);
- mp.clear();
- for(int i=n;i>=1;i--) mp[a[i]] = i;
- for(auto i:mp)
- {
- first[i.second] ++;
- }
- for(int i=1;i<=n;i++) sum[i] = 0;
- int y[n+1]; y[n] = 0; sum[n] = first[n];
- for(int i=n-1;i>=1;i--)
- {
- y[i] = sum[i+1];
- sum[i] = sum[i+1] + first[i];
- }
- for(int i=1;i<=n;i++) cout<<abs(x[i] - y[i])<<' '; cout<<"\n";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement