update
This commit is contained in:
parent
f485391c43
commit
e2b339fa8e
2
src/7/17/Summer0.in
Normal file
2
src/7/17/Summer0.in
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
1
|
||||||
|
1 100000
|
1
src/7/17/Summer0.out
Normal file
1
src/7/17/Summer0.out
Normal file
@ -0,0 +1 @@
|
|||||||
|
199997
|
100001
src/7/17/Summer1.in
Normal file
100001
src/7/17/Summer1.in
Normal file
File diff suppressed because it is too large
Load Diff
1
src/7/17/Summer1.out
Normal file
1
src/7/17/Summer1.out
Normal file
@ -0,0 +1 @@
|
|||||||
|
2264964024
|
100001
src/7/17/Summer2.in
Normal file
100001
src/7/17/Summer2.in
Normal file
File diff suppressed because it is too large
Load Diff
1
src/7/17/Summer2.out
Normal file
1
src/7/17/Summer2.out
Normal file
@ -0,0 +1 @@
|
|||||||
|
66329177774288
|
@ -1,32 +1,35 @@
|
|||||||
|
#include <cstdint>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
const int MAX_N = 100000;
|
using ll = int64_t;
|
||||||
|
const ll MAX_N = 100000;
|
||||||
|
|
||||||
struct Sm {
|
struct Sm {
|
||||||
vector<int> tree;
|
vector<ll> tree;
|
||||||
int n;
|
ll n;
|
||||||
Sm(int size) {
|
Sm(ll size) {
|
||||||
n = size;
|
n = size;
|
||||||
tree.assign(n + 1, 0);
|
tree.assign(n + 1, 0);
|
||||||
}
|
}
|
||||||
void update(int i, int v) {
|
void update(ll i, ll v) {
|
||||||
while (i <= n) {
|
while (i <= n) {
|
||||||
tree[i] += v;
|
tree[i] += v;
|
||||||
i += i & -i;
|
i += i & -i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
int query(int i) {
|
ll query(ll i) {
|
||||||
int sum = 0;
|
ll sum = 0;
|
||||||
while (i) {
|
while (i) {
|
||||||
sum += tree[i];
|
sum += tree[i];
|
||||||
i -= i & -i;
|
i -= i & -i;
|
||||||
}
|
}
|
||||||
return sum;
|
return sum;
|
||||||
}
|
}
|
||||||
int query(int l, int r) {
|
ll query(ll l, ll r) {
|
||||||
if (l > r) return 0;
|
if (l > r) return 0;
|
||||||
return query(r) - query(l - 1);
|
return query(r) - query(l - 1);
|
||||||
}
|
}
|
||||||
@ -35,14 +38,14 @@ struct Sm {
|
|||||||
int main() {
|
int main() {
|
||||||
ios::sync_with_stdio(false);
|
ios::sync_with_stdio(false);
|
||||||
cin.tie(0);
|
cin.tie(0);
|
||||||
int k;
|
ll k;
|
||||||
cin >> k;
|
cin >> k;
|
||||||
vector<int> arr(MAX_N + 1);
|
vector<ll> arr(MAX_N + 1);
|
||||||
for (int i = 1; i <= MAX_N; i++) {
|
for (ll i = 1; i <= MAX_N; i++) {
|
||||||
arr[i] = i;
|
arr[i] = i;
|
||||||
}
|
}
|
||||||
for (int i = 0; i < k; i++) {
|
for (ll i = 0; i < k; i++) {
|
||||||
int x, y;
|
ll x, y;
|
||||||
cin >> x >> y;
|
cin >> x >> y;
|
||||||
if (x <= MAX_N && y <= MAX_N) {
|
if (x <= MAX_N && y <= MAX_N) {
|
||||||
swap(arr[x], arr[y]);
|
swap(arr[x], arr[y]);
|
||||||
@ -50,7 +53,7 @@ int main() {
|
|||||||
}
|
}
|
||||||
Sm sm(MAX_N);
|
Sm sm(MAX_N);
|
||||||
long long ans = 0;
|
long long ans = 0;
|
||||||
for (int j = 1; j <= MAX_N; j++) {
|
for (ll j = 1; j <= MAX_N; j++) {
|
||||||
if (arr[j] < MAX_N) {
|
if (arr[j] < MAX_N) {
|
||||||
ans += sm.query(arr[j] + 1, MAX_N);
|
ans += sm.query(arr[j] + 1, MAX_N);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user