Submission #1317437

#TimeUsernameProblemLanguageResultExecution timeMemory
1317437comet0Group Photo (JOI21_ho_t3)C++20
0 / 100
1 ms332 KiB
#include <bits/stdc++.h> using namespace std; struct BIT { int n; vector<long long> bit; BIT(int n_ = 0) { init(n_); } void init(int n_) { n = n_; bit.assign(n + 1, 0); } void add(int idx, long long delta) { for (; idx <= n; idx += idx & -idx) bit[idx] += delta; } long long sum(int idx) const { long long res = 0; for (; idx > 0; idx -= idx & -idx) res += bit[idx]; return res; } }; int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; vector<int> a(n); for (auto& x : a) cin >> x; vector<int> vals = a; sort(vals.begin(), vals.end()); vals.erase(unique(vals.begin(), vals.end()), vals.end()); int m = vals.size(); BIT bit(m); int ans = 0; for (int i = n - 1; i >= 0; i--) { int idx = lower_bound(vals.begin(), vals.end(), a[i]) - vals.begin() + 1; int thr = upper_bound(vals.begin(), vals.end(), a[i] - 2) - vals.begin(); ans += bit.sum(thr); bit.add(idx, 1); } cout << ans - 1; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...