Submission #157621

#TimeUsernameProblemLanguageResultExecution timeMemory
157621stefdascaPairs (IOI07_pairs)C++14
47 / 100
36 ms3492 KiB
#include<bits/stdc++.h> using namespace std; int tip, n, d, m; long long ans; struct tp { int x, y, z; }; tp vv[10002]; void solvesmall() { for(int i = 1; i <= n; ++i) { cin >> vv[i].x; if(tip >= 2) cin >> vv[i].y; if(tip >= 3) cin >> vv[i].z; } for(int i = 1; i <= n; ++i) for(int j = i+1; j <= n; ++j) { int dd = abs(vv[i].x - vv[j].x) + abs(vv[i].y - vv[j].y) + abs(vv[i].z - vv[j].z); if(dd <= d) ++ans; } cout << ans << '\n'; } int v[100002]; void solve1() { for(int i = 1; i <= n; ++i) cin >> v[i]; sort(v+1, v+n+1); for(int i = 1; i <= n; ++i) { int sm = i; int st = 1; int dr = i-1; while(st <= dr) { int mid = (st + dr) / 2; if(v[i] - v[mid] <= d) sm = mid, dr = mid - 1; else st = mid + 1; } ans += (i - sm); } cout << ans << '\n'; } int aib[322][200002]; vector<int>coord[100002]; pair<int, int> nr[100002]; void upd(int zona, int pozitie) { for(; pozitie <= 200000; pozitie += (pozitie & (-pozitie))) aib[zona][pozitie]++; } int query(int zona, int pozitie) { int ans = 0; for(; pozitie <= 200000; pozitie -= (pozitie & (-pozitie))) ans += aib[zona][pozitie]; return ans; } void solve2() { for(int i = 1; i <= n; ++i) cin >> nr[i].first >> nr[i].second, nr[i].second += 100000; sort(nr + 1, nr + n + 1); } void solve3() { } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cin >> tip >> n >> d >> m; if(tip == 1) solve1(); else if(n <= 60000) solvesmall(); else if(tip == 2) solve2(); else if(tip == 3) solve3(); 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...