제출 #521974

#제출 시각아이디문제언어결과실행 시간메모리
521974emanuelsilvaPairs (IOI07_pairs)C++17
60 / 100
134 ms10000 KiB
#include <bits/stdc++.h> using namespace std; #define _ ios_base::sync_with_stdio(0);cin.tie(0); #define endl '\n' typedef long long ll; const int INF = 0x3f3f3f3f; const ll LINF = 0x3f3f3f3f3f3f3f3fll; #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace __gnu_pbds; template <class T> using ord_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>; const int MAX = 80; void solve1(int n, int d, int m) { vector<pair<int, int>> ev; for (int i = 0; i<n; i++) { int x; cin >> x; ev.emplace_back(x, 0); ev.emplace_back(x+d, 1); } sort(ev.begin(), ev.end()); int cnt = 0; ll ans = 0; for (auto [x, ty] : ev) { if (ty == 0) ans += cnt, cnt++; else cnt--; } cout << ans << endl; } void solve2(int n, int d, int m) { vector<tuple<int, int, int, int>> ev; for (int i = 0; i<n; i++) { int x, y; cin >> x >> y; int nx = x + y; y = x - y; x = nx; ev.emplace_back(x, 0, y, i); ev.emplace_back(x+d, 1, y, i); } sort(ev.begin(), ev.end()); ord_set<pair<int, int>> st; ll ans = 0; for (auto [x, ty, y, i] : ev) { if (ty == 0) { ans += st.order_of_key({y+d, INF}) - st.order_of_key({y-d, -INF}); st.insert({y, i}); } else st.erase({y, i}); } cout << ans << endl; } void solve3(int n, int d, int m) { } int main() { _ int b, n, d, m; cin >> b >> n >> d >> m; if (b == 1) solve1(n, d, m); if (b == 2) solve2(n, d, m); if (b == 3) solve3(n, d, m); exit(0); }
#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...