Cod sursa(job #2315799)

Utilizator patcasrarespatcas rares danut patcasrares Data 10 ianuarie 2019 16:29:12
Problema Poligon Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.42 kb
#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;
}