제출 #126114

#제출 시각아이디문제언어결과실행 시간메모리
126114nvmdavaPairs (IOI07_pairs)C++17
60 / 100
120 ms10360 KiB
#include <bits/stdc++.h> using namespace std; int a[100005]; void solve1(){ int n, d, m; cin>>n>>d>>m; for(int i = 1; i <= n; i++) cin>>a[i]; sort(a + 1, a + n + 1); long long res = 0; for(int i = 1; i <= n; i++){ res += (i - (lower_bound(a + 1, a + n + 1, a[i] - d) - (a))); } cout<<res; } int t[500000]; int L, R; void update(int id, int l, int r){ if(l > L || r < L) return; t[id] += R; if(l == r) return; int m = (l + r) >> 1; update(id << 1, l, m); update(id << 1 | 1, m + 1, r); } int query(int id, int l, int r){ if(l > R || r < L) return 0; if(l >= L && r <= R) return t[id]; int m = (l + r) >> 1; return query(id << 1, l, m) + query(id << 1 | 1, m + 1, r); } vector<int> lol[200000]; void solve2(){ int n, d, m; cin>>n>>d>>m; for(int i = 1; i <= n; i++){ int x, y; cin>>x>>y; lol[x + y].push_back(x - y + m); } m <<= 1; long long res = 0; for(int i = 1; i <= m; i++){ for(int& x : lol[i]){ L = max(x - d, 1); R = min(x + d, m); res += query(1, 1, m); L = x; R = 1; update(1, 1, m); } if(i >= d){ for(int& x : lol[i - d]){ L = x; R = -1; update(1, 1, m); } } } cout<<res; } void solve3(){ } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int test; cin>>test; if(test == 1) solve1(); if(test == 2) solve2(); if(test == 3) solve3(); }
#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...
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...