Cod sursa(job #1939088)

Utilizator ericutzdevilEric Spataru ericutzdevil Data 25 martie 2017 13:57:36
Problema Pachete Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.71 kb
#include<cstdio>
#include<algorithm>

using namespace std;

struct ura{
    int x,y;};

ura v[1001];
ura v1[1001];
ura v2[1001];
ura v3[1001];
ura v4[1001];

int a1[100][501],a2[100][501],a3[100][501],a4[100][501],drumuri2[1001];

bool sortare(ura a,ura b){
    return a.x<b.x;}

int main()

{

freopen ("pachete.in","r",stdin);
freopen ("pachete.out","w",stdout);

int n,i,cate=0,pp=0,st,dr,mij,fx,fy;

scanf ("%d",&n);

scanf ("%d%d",&fx,&fy);

for (i=1;i<=n;i++){
    scanf ("%d%d",&v[i].x,&v[i].y);
}

sort (v+1,v+n+1,sortare);

int e1=0,e2=0,e3=0,e4=0;

for (i=1;i<=n;i++)
    {
        if (v[i].x>=fx && v[i].y>=fy){
            v1[++e1].x=v[i].x;
            v1[e1].y=v[i].y;}
        else if (v[i].x>=fx && v[i].y<=fy){
            v2[++e2].x=v[i].x;
            v2[e2].y=v[i].y;}
        else if (v[i].x<=fx && v[i].y<=fy){
            v3[++e3].x=v[i].x;
            v3[e3].y=v[i].y;}
        else if (v[i].x<=fx && v[i].y>=fy){
            v4[++e4].x=v[i].x;
            v4[e4].y=v[i].y;}
    }

for (i=1;i<=e1;i++)
    printf ("%d %d\n",v1[i].x,v1[i].y);
printf ("\n");
for (i=1;i<=e2;i++)
    printf ("%d %d\n",v2[i].x,v2[i].y);
printf ("\n");
for (i=1;i<=e3;i++)
    printf ("%d %d\n",v3[i].x,v3[i].y);
printf ("\n");
for (i=1;i<=e4;i++)
    printf ("%d %d\n",v4[i].x,v4[i].y);

int nrElemMultDrumuri2=0,poz,j;
for (i=1;i<=e2;i++){
    // DACA IN DRUMURILE ANTERIOARE NU POATE FI ATASAT
    poz=-1;
    for (j=1;j<=nrElemMultDrumuri2;j++){
        if (drumuri2[j]<v2[i].y){
            poz=j-1;
            break;}}
    if (poz==-1){
        drumuri2[++nrElemMultDrumuri2]=v2[i].y;}
    else{
        drumuri2[nrElemMultDrumuri2]=v2[i].y;}
}

return 0;
}