This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
#define ff first
#define ss second
#define pb push_back
#define int long long
const int N=3e5+5;
void sbtsk1(int N, int D , int M){
vector<int>v;
for(int i=0;i<N;i++){
int a;
cin>>a;
v.pb(a);
}
sort(v.begin(),v.end());
int cnt=0;
for(auto i=v.begin();i!=v.end();i++){
int a=*i;
auto it= upper_bound(v.begin(),v.end(),a-D-1);
cnt+= i-it;
}
cout<<cnt;
}
void sbtsk2(int N, int D , int M){
vector<pair<int,int>>v;
vector<int>vx[M+23];
vector<int>vy[M+23];
for(int i=0;i<N;i++){
int x,y;
cin>>x>>y;
vx[x].pb(y);
vy[y].pb(x);
v.pb({x,y});
}
for(int i=0;i<=M;i++){
sort(vx[i].begin(),vx[i].end());
}
int cnt=0;
for(int i=0;i<N;i++){
int x=v[i].ff;
int y=v[i].ss;
int p=0;
for(int x1=0;x1<=M;x1++){
if(abs(x1-x)>D)continue;
if(vx[x1].empty())continue;
int k=D-abs(x-x1);
auto lo=upper_bound(vx[x1].begin(),vx[x1].end(),y-k-1);
auto hi=upper_bound(vx[x1].begin(),vx[x1].end(),k+y);
cnt+=hi-lo;
}
cnt--;
}
cout<<cnt/2;
}
void sbtsk3(int N, int D, int M){
vector<pair<pair<int,int>,int>>v;
for(int i=0;i<N;i++){
int x,y,z;
cin>>x>>y>>z;
v.pb({{x,y},z});
}
int cnt=0;
for(int i=0;i<N;i++){
for(int j=i+1;j<N;j++){
int d=abs(v[i].ff.ff-v[j].ff.ff)+abs(v[i].ff.ss-v[j].ff.ss)+abs(v[i].ss-v[j].ss);
if(d<=D)cnt++;
}
}
cout<<cnt;
}
signed main(){
int B,N,D,M;
cin>>B>>N>>D>>M;
if(B==1){
sbtsk1(N,D,M);
return 0;
}
if(B==2){
sbtsk2(N,D,M);
return 0;
}
sbtsk3(N,D,M);
}
Compilation message (stderr)
pairs.cpp: In function 'void sbtsk2(long long int, long long int, long long int)':
pairs.cpp:43:7: warning: unused variable 'p' [-Wunused-variable]
43 | int p=0;
| ^
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |