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 <vector>
|
||||
#include <algorithm>
|
||||
|
||||
using namespace std;
|
||||
|
||||
const int MAX_N = 100000;
|
||||
using ll = int64_t;
|
||||
const ll MAX_N = 100000;
|
||||
|
||||
struct Sm {
|
||||
vector<int> tree;
|
||||
int n;
|
||||
Sm(int size) {
|
||||
vector<ll> tree;
|
||||
ll n;
|
||||
Sm(ll size) {
|
||||
n = size;
|
||||
tree.assign(n + 1, 0);
|
||||
}
|
||||
void update(int i, int v) {
|
||||
void update(ll i, ll v) {
|
||||
while (i <= n) {
|
||||
tree[i] += v;
|
||||
i += i & -i;
|
||||
}
|
||||
}
|
||||
int query(int i) {
|
||||
int sum = 0;
|
||||
ll query(ll i) {
|
||||
ll sum = 0;
|
||||
while (i) {
|
||||
sum += tree[i];
|
||||
i -= i & -i;
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
int query(int l, int r) {
|
||||
ll query(ll l, ll r) {
|
||||
if (l > r) return 0;
|
||||
return query(r) - query(l - 1);
|
||||
}
|
||||
@ -35,14 +38,14 @@ struct Sm {
|
||||
int main() {
|
||||
ios::sync_with_stdio(false);
|
||||
cin.tie(0);
|
||||
int k;
|
||||
ll k;
|
||||
cin >> k;
|
||||
vector<int> arr(MAX_N + 1);
|
||||
for (int i = 1; i <= MAX_N; i++) {
|
||||
vector<ll> arr(MAX_N + 1);
|
||||
for (ll i = 1; i <= MAX_N; i++) {
|
||||
arr[i] = i;
|
||||
}
|
||||
for (int i = 0; i < k; i++) {
|
||||
int x, y;
|
||||
for (ll i = 0; i < k; i++) {
|
||||
ll x, y;
|
||||
cin >> x >> y;
|
||||
if (x <= MAX_N && y <= MAX_N) {
|
||||
swap(arr[x], arr[y]);
|
||||
@ -50,7 +53,7 @@ int main() {
|
||||
}
|
||||
Sm sm(MAX_N);
|
||||
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) {
|
||||
ans += sm.query(arr[j] + 1, MAX_N);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user