Pagini recente » Cod sursa (job #1536441) | Profil Bujenita_Razvan | Cod sursa (job #1114554) | Rating Sami Reka (SamiReka) | Cod sursa (job #2864968)
#include <bits/stdc++.h>
#pragma GCC optimize ("Ofast")
using namespace std;
ifstream fin ("grendizer.in");
ofstream fout ("grendizer.out");
const int MAX_N = 100005;
struct punct{
int x;
int y;
} q, p[MAX_N];
vector <int> sum, dif;
vector <int> vs[MAX_N], vd[MAX_N];
int n, r;
int st, md, dr;
int cautbin(vector <int> cb, int target){
st = 0;
dr = (int)cb.size()-1;
while(st <= dr){
md = ((st+dr)>>1);
if(cb[md] == target) return md;
if(cb[md] < target) st = md + 1;
if(cb[md] > target) dr = md - 1;
}
}
int main (){
fin>>n;
for(int i=1; i<=n; i++){
fin>>p[i].x>>p[i].y;
sum.push_back(p[i].x + p[i].y);
dif.push_back(p[i].x - p[i].y);
}
sort(sum.begin(), sum.end());
sort(dif.begin(), dif.end());
for(auto s : sum) cout<<s<<" ";
cout<<"\n";
for(auto d : dif) cout<<d<<" ";
for(int i=1; i<=n; i++){
vs[ cautbin(sum, p[i].x+p[i].y) ].push_back(i);
vd[ cautbin(dif, p[i].x-p[i].y) ].push_back(i);
}
int teste;
fin>>teste;
while(teste--){
fin>>q.x>>q.y>>r;
///latura rombului nord-vest
///latura rombului nord-est
///latura rombului sud-est
///latura rombului sud-vest
}
return 0;
}
/**
1
111
11111
111
1
**/