Cod sursa(job #1148924)

Utilizator CostanMiriamCostan Miriam CostanMiriam Data 21 martie 2014 12:19:43
Problema Oypara Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.58 kb
#include <fstream>

using namespace std;

ifstream fin ("oypara.in");
ofstream fout ("oypara.out");

struct punct {

    int x;
    int y;
}s[100010],j[100010],pct;

int arie (punct i, punct j, punct k) {

    double ariec = (j.x-i.x)*(k.y-i.y)-(k.x-i.x)*(j.y-i.y);
    if (ariec<0.0001)
        return 1;
    else
        return 0;

}

int cmp (punct a, punct b) {

    return arie(pct,a,b);

}

int main () {

    fin>>n;
    for (i=1;i<=n;i++) {
        fin>>x>>y1>>y2;
        j[i].x=s[i].x=x;
        j[i].y=y1;
        s[i].y=y2;
        if (x<minimj) {
            minimj=x;
            iminj=i;
        }else
            if (x==minimj&& y1<v[iminj].y)
                iminj=i;
        if (x<minims) {
            minims=x;
            imins=i;
        }else
            if (x==minims&& y2<v[imins].y)
                imins=i;

    }
    aux1=j[1].x;aux2=j[1].y;
    j[1].x=j[iminj].x;j[1].y=j[iminj].y;
    j[iminj].x=aux1;j[iminj].y=aux2;

    pct=j[1];

    sort (j+2,j+n+1,cmp);

    i1[1]=n;
    i1[2]=n-1;

    p=2;
    for (i=n-2;i>=1;i--) {
        while( arie (j[i1[p-1]],j[i1[p]],j[i]) && p>=1 )
            p--;
        i1[++p]=i;
    }
    aux1=s[1].x;    aux2=s[1].y;
    s[1].x=s[iminj].x;  s[1].y=j[iminj].y;
    s[iminj].x=aux1;    s[iminj].y=aux2;

    pct=s[1];

    sort (s+2,s+n+1,cmp);

    i2[1]=n;
    i2[2]=n-1;

    p=2;
    for (i=n-2;i>=1;i--) {
        while( arie (s[i2[p-1]],s[i2[p]],j[i]) && p>=1 )
            p--;
        i1[++p]=i;
    }

    for (i=1;i<=n;i++) {

    return 0;
}