Submission #52903977
Source Code Expand
// LUOGU_RID: 157309667
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int maxn = 4e5 + 10;
int n;
struct BIT
{
int c[maxn];
int lowbit(int x){return x & (-x);}
void update(int u,int val){while(u <= n){c[u] += val;u += lowbit(u);}}
int query(int u){int ans = 0;while(u > 0){ans += c[u],u -= lowbit(u);}return ans;}
}sum,cnt;
pair<int,int> a[maxn];
signed main()
{
cin >> n;
for(int i = 1;i <= n;i++)
{
cin >> a[i].first;
a[i].second = i;
}
sort(a + 1,a + n + 1);
int ans = 0;
for(int i = 1;i <= n;i++)
{
ans += cnt.query(a[i].second) * a[i].first - sum.query(a[i].second);
cnt.update(a[i].second,1);
sum.update(a[i].second,a[i].first);
}
cout << ans;
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | F - Double Sum |
| User | feather_life |
| Language | C++ 20 (gcc 12.2) |
| Score | 500 |
| Code Size | 825 Byte |
| Status | AC |
| Exec Time | 144 ms |
| Memory | 16144 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 500 / 500 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00_sample_00.txt, 00_sample_01.txt |
| All | 00_sample_00.txt, 00_sample_01.txt, 01_random_00.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 02_corner_00.txt, 02_corner_01.txt, 02_corner_02.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_00.txt | AC | 1 ms | 3464 KiB |
| 00_sample_01.txt | AC | 1 ms | 3508 KiB |
| 01_random_00.txt | AC | 10 ms | 4372 KiB |
| 01_random_01.txt | AC | 144 ms | 15876 KiB |
| 01_random_02.txt | AC | 96 ms | 12076 KiB |
| 01_random_03.txt | AC | 142 ms | 16076 KiB |
| 01_random_04.txt | AC | 57 ms | 8740 KiB |
| 01_random_05.txt | AC | 144 ms | 16072 KiB |
| 02_corner_00.txt | AC | 83 ms | 15956 KiB |
| 02_corner_01.txt | AC | 1 ms | 3464 KiB |
| 02_corner_02.txt | AC | 108 ms | 16144 KiB |