Pagini recente » Cod sursa (job #1239493) | Cod sursa (job #1104312) | Cod sursa (job #2219582) | Cod sursa (job #2306420) | Cod sursa (job #2315799)
#include<fstream>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<deque>
#include<queue>
#include<set>
#include<ctime>
#include<cstdio>
#include<map>
#include<unordered_map>
#include<stack>
#define x first
#define y second
#define pb push_back
using namespace std;
ifstream fin("poligon.in");
ofstream fout("poligon.out");
const int DN=60005,DM=805;
int n,m,lf,lg,f,g,nr;
unsigned short s[DN][DM],lst[DM];
int fr[1024];
void sortare(unsigned short a[805],int n)
{
int p=0,DM=1024;
for(int h=1;h<4;h++)
{
for(int i=0;i<DM;i++)
fr[i]=0;
for(int i=1;i<=n;i++)
{
lst[i]=a[i];
fr[(a[i]>>p)%1024]++;
}
for(int i=1;i<DM;i++)
fr[i]+=fr[i-1];
for(int i=DM-1;i>0;i--)
fr[i]=fr[i-1];
fr[0]=0;
for(int i=1;i<=n;i++)
{
fr[(lst[i]>>p)%1024]++;
a[fr[(lst[i]>>p)%1024]]=lst[i];
}
p+=10;
}
}
int main()
{
fin>>n>>m;
for(int i=1;i<=n;i++)
{
lf=f;
lg=g;
fin>>f>>g;
if(i==1)
continue;
for(int j=min(lf,f);j<=max(lf,f);j++)
{
s[j][0]++;
s[j][s[j][0]]=rand();
}
}
for(int i=0;i<DN;i++)
if(s[i][0])
sortare(s[i],s[i][0]);
for(int i=1;i<=m;i++)
fin>>f>>g;
}