Submission #786464

#TimeUsernameProblemLanguageResultExecution timeMemory
786464danikoynovPairs (IOI07_pairs)C++14
37 / 100
4065 ms2648 KiB
#include<bits/stdc++.h> #define endl '\n' using namespace std; typedef long long ll; void speed() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); } const int maxn = 1e5 + 10; struct point { int x, y, z; point(int _x = 0, int _y = 0, int _z = 0) { x = _x; y = _y; z = _z; } }p[maxn], s[maxn]; bool cmp(point p1, point p2) { if (p1.x != p2.x) return p1.x < p2.x; if (p1.y != p2.y) return p1.y < p2.y; return p1.z < p2.z; } struct fenwick_1d { int fen[75010]; void update(int pos, int val) { } }; int b, n, d, m; void solve() { cin >> b >> n >> d >> m; for (int i = 1; i <= n; i ++) { cin >> p[i].x; if (b >= 2) cin >> p[i].y; if (b == 3) cin >> p[i].z; } if (b == 1) { sort(p + 1, p + n + 1, cmp); int pt = 1; ll ans = 0; for (int i = 1; i <= n; i ++) { while(p[i].x - p[pt].x > d) pt ++; ///cout << i << " : " << p[i].x << " " << pt << endl; ans += (ll)(i - pt); } cout << ans << endl; } else if (b == 2) { for (int i = 1; i <= n; i ++) { s[i].x = p[i].x - p[i].y; s[i].y = p[i].x + p[i].y; } ll ans = 0; for (int i = 1; i <= n; i ++) for (int j = i + 1; j <= n; j ++) if (abs(s[i].x - s[j].x) <= d && abs(s[i].y - s[j].y) <= d) ans ++; cout << ans << endl; } } int main() { solve(); return 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...