/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 344.0 KiB
#2 Accepted 2ms 348.0 KiB
#3 Accepted 2ms 544.0 KiB
#4 Accepted 2ms 532.0 KiB
#5 Accepted 2ms 532.0 KiB
#6 Accepted 3ms 544.0 KiB
#7 Accepted 3ms 536.0 KiB
#8 Accepted 3ms 532.0 KiB
#9 Accepted 3ms 320.0 KiB
#10 Accepted 3ms 532.0 KiB
#11 Accepted 5ms 532.0 KiB
#12 Accepted 5ms 532.0 KiB
#13 Accepted 2ms 532.0 KiB
#14 Accepted 1ms 532.0 KiB
#15 Accepted 1ms 764.0 KiB
#16 Accepted 1ms 712.0 KiB
#17 Accepted 1ms 536.0 KiB
#18 Accepted 1ms 532.0 KiB
#19 Accepted 1ms 764.0 KiB
#20 Accepted 1ms 532.0 KiB
#21 Accepted 1ms 532.0 KiB
#22 Accepted 1ms 532.0 KiB
#23 Accepted 1ms 372.0 KiB
#24 Accepted 1ms 532.0 KiB
#25 Accepted 1ms 320.0 KiB
#26 Accepted 1ms 344.0 KiB
#27 Accepted 1ms 484.0 KiB
#28 Accepted 1ms 488.0 KiB
#29 Accepted 1ms 536.0 KiB
#30 Accepted 1ms 536.0 KiB
#31 Accepted 5ms 532.0 KiB
#32 Accepted 4ms 532.0 KiB
#33 Accepted 5ms 532.0 KiB
#34 Accepted 3ms 532.0 KiB
#35 Accepted 1ms 324.0 KiB
#36 Accepted 1ms 532.0 KiB
#37 Accepted 1ms 532.0 KiB
#38 Accepted 1ms 532.0 KiB
#39 Accepted 1ms 532.0 KiB
#40 Accepted 1ms 336.0 KiB
#41 Accepted 1ms 532.0 KiB
#42 Accepted 1ms 532.0 KiB
#43 Accepted 1ms 532.0 KiB
#44 Accepted 1ms 532.0 KiB
#45 Accepted 1ms 444.0 KiB
#46 Accepted 1ms 348.0 KiB
#47 Accepted 1ms 324.0 KiB
#48 Accepted 1ms 532.0 KiB
#49 Accepted 1ms 320.0 KiB
#50 Accepted 2ms 500.0 KiB
#51 Accepted 3ms 320.0 KiB
#52 Accepted 5ms 444.0 KiB
#53 Accepted 5ms 532.0 KiB
#54 Accepted 4ms 532.0 KiB
#55 Accepted 5ms 416.0 KiB
#56 Accepted 5ms 532.0 KiB
#57 Accepted 3ms 408.0 KiB
#58 Accepted 1ms 532.0 KiB
#59 Accepted 1ms 532.0 KiB
#60 Accepted 1ms 520.0 KiB
#61 Accepted 1ms 316.0 KiB
#62 Accepted 1ms 532.0 KiB
#63 Accepted 1ms 536.0 KiB
#64 Accepted 1ms 532.0 KiB
#65 Accepted 1ms 524.0 KiB
#66 Accepted 1ms 512.0 KiB
#67 Accepted 1ms 532.0 KiB
#68 Accepted 1ms 324.0 KiB
#69 Accepted 1ms 532.0 KiB
#70 Accepted 1ms 532.0 KiB
#71 Accepted 1ms 532.0 KiB
#72 Accepted 1ms 532.0 KiB
#73 Accepted 1ms 492.0 KiB
#74 Accepted 1ms 324.0 KiB
#75 Accepted 1ms 532.0 KiB
#76 Accepted 5ms 532.0 KiB
#77 Accepted 4ms 348.0 KiB
#78 Accepted 2ms 764.0 KiB
#79 Accepted 1ms 532.0 KiB
#80 Accepted 1ms 532.0 KiB
#81 Accepted 1ms 320.0 KiB
#82 Accepted 1ms 532.0 KiB
#83 Accepted 1ms 424.0 KiB
#84 Accepted 1ms 532.0 KiB
#85 Accepted 1ms 400.0 KiB
#86 Accepted 1ms 384.0 KiB
#87 Accepted 1ms 352.0 KiB
#88 Accepted 1ms 532.0 KiB
#89 Accepted 1ms 548.0 KiB
#90 Accepted 1ms 532.0 KiB
#91 Accepted 1ms 536.0 KiB
#92 Accepted 74ms 4.383 MiB
#93 Accepted 80ms 4.336 MiB
#94 Accepted 85ms 4.383 MiB
#95 Accepted 93ms 4.43 MiB
#96 Accepted 77ms 4.383 MiB
#97 Accepted 96ms 4.379 MiB
#98 Accepted 82ms 4.43 MiB
#99 Accepted 82ms 4.273 MiB
#100 Accepted 82ms 4.465 MiB

Code

// Author : Kamonasish Roy

#include<bits/stdc++.h>
using namespace std;
const long long M=5e5,MOD=1e9+7;
typedef long long ll;
int bit[M];
int query(int id){
	int sum=0;
	while(id>0){
		sum+=bit[id];
		id-=id &( -id);
	}
	return sum;
}
void update(int id,int n){
	while(id<=n){
		bit[id]+=1;
		id+=id & (-id);
	}
}
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    int t=1;
    cin>>t;
    while(t--){
    	int n;
    	cin>>n;
    	assert(n>=1 && n<=2e5);
        priority_queue<pair<int,int>>pq;
        ll ans=0;
    	for(int i=1;i<=n;i++){
    		int num;
    		cin>>num;
    		assert(num>=1 && num<=n);
    		pq.push({num,i});
    		bit[i]=0;
    	}
    	vector<ll>po(n+1,0);
    	int cur=2;
    	for(int i=1;i<=n;i++){
    		po[i]=(cur-1LL+MOD)%MOD;
    		cur*=2LL;
    		cur=(cur%MOD);
    	}
    	while(!pq.empty()){
    		vector<int>id;
    		int cur_x=pq.top().first;
    		while(!pq.empty()&& pq.top().first==cur_x){
    			id.push_back(pq.top().second);
    			pq.pop();
    		}
    		for(auto it:id){
    			update(it,n);
    		}
    		for(auto it:id){
    			int r=(n-it)-(query(n)-query(it));
    			int l=it-query(it);
    			ll cur_total= (po[r]*po[l])%MOD;
    			ans=(ans+cur_total)%MOD;
    		}
    	}
    	cout<<ans<<"\n";
    	}
    	
    	
    	   
    return 0;
 
}

Information

Submit By
Type
Submission
Problem
P1213 good sequence
Language
C++17 (G++ 13.2.0)
Submit At
2025-07-26 18:55:20
Judged At
2025-07-26 18:55:20
Judged By
Score
100
Total Time
96ms
Peak Memory
4.465 MiB