Pagini recente » Cod sursa (job #596753) | Cod sursa (job #2363609) | Cod sursa (job #2092570) | Cod sursa (job #1901667) | Cod sursa (job #1000913)
#include <iostream>
#include <algorithm>
using namespace std;
struct elem
{
int val;
int poz;
}x[16005],rx[16005],y[16005],ry[16005],incep_x[100005],incep_y[100005],sfar_x[100005],sfar_y[100005];
elem rincep_x[100005],rincep_y[100005],rsfar_x[100005],rsfar_y[100005];
bool operator<(const elem &a,const elem &b)
{
if(a.val<=b.val)
return 1;
return 0;
}
#define inf 10000 //de mod
int main()
{
int n,m,i;
cin>>n;
for(i=1;i<=n;i++)
{
cin>>x[i].val>>y[i].val;
x[i].poz=i;
y[i].poz=i;
rx[i]=x[i];
ry[i]=y[i];
}
sort(x+1,x+n+1);
sort(y+1,y+n+1);
cin>>m;
for(i=1;i<=m;i++)
{
cin>>incep_x[i].val>>incep_y[i].val>>sfar_x[i].val>>sfar_y[i].val;
incep_x[i].poz=i;
incep_y[i].poz=i;
sfar_x[i].poz=i;
sfar_y[i].poz=i;
rincep_x[i]=incep_x[i];
rincep_y[i]=incep_y[i];
rsfar_x[i]=sfar_x[i];
rsfar_y[i]=sfar_y[i];
}
sort(incep_x+1,incep_x+m+1);
sort(incep_y+1,incep_y+m+1);
sort(sfar_x+1,sfar_x+m+1);
sort(sfar_y+1,sfar_y+m+1);
x[0].val=-inf;
y[0].val=-inf;
x[n+1].val=inf;
y[n+1].val=inf;
int t=0;
for(i=1;i<=m;i++)
{
while(x[t+1].val<incep_x[i].val)
t++;
cout<<"pentru "<<incep_x[i].val<<' ';
rincep_x[incep_x[i].poz]=x[t+1];
cout<<x[t+1].val<<' ';
}
cout<<endl;
t=0;
for(i=1;i<=m;i++)
{
while(y[t+1].val<incep_y[i].val)
t++;
rincep_y[incep_y[i].poz]=y[t+1];
cout<<y[t+1].val<<' ';
}
cout<<endl;
//
t=0;
for(i=1;i<=m;i++)
{
while(x[t+1].val<=sfar_x[i].val)
t++;
rsfar_x[sfar_x[i].poz]=x[t];
cout<<"pentru "<<sfar_x[i].val<<' ';
cout<<x[t].val<<' ';
}
cout<<endl;
t=0;
for(i=1;i<=m;i++)
{
while(y[t+1].val<=sfar_y[i].val)
t++;
rsfar_y[sfar_y[i].poz]=y[t];
cout<<y[t].val<<' ';
}
cout<<endl;
sort(x+1,x+n+1);
int rasp=1;
int ante=x[1].val;
for(i=1;i<=n;i++)
{
if(x[i].val!=ante)
{
ante=x[i].val;
rasp++;
}
x[i].val=rasp;
rx[x[i].poz].val=rasp;
}
rasp=1;
ante=y[1].val;
for(i=1;i<=n;i++)
{
if(y[i].val!=ante)
{
ante=y[i].val;
rasp++;
}
y[i].val=rasp;
ry[y[i].poz].val=rasp;
}
return 0;
}