Cod sursa(job #855861)

Utilizator nrpcCiprian Stirbu nrpc Data 15 ianuarie 2013 18:43:37
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
// Date n puncte in plan sa se determine aria si sa se stabileasca
// sensul de parcurs
#include <fstream>
using namespace std;
ifstream f("date.in");
ofstream g("date.out");
struct point{
    int x, y;
}v[1001];

int s1, s2, s3, n;

int isleft(point A, point B, point C)
{
    return (B.x-A.x)*(C.y-A.y)-(B.y-A.y)*(C.x-A.x);
}

void read()
{
    f>>n;
    for(int i=0; i<n; ++i) f>>v[i].x>>v[i].y;
    v[n].x=v[0].x;
    v[n].y=v[0].y;
    v[n+1].x=v[1].x;
    v[n+1].y=v[1].y;
}

void solve()
{
    int i;
    for(i=0; i<n; ++i)
    {
        s1 += (v[i].x*v[i+1].y)-(v[i+1].x*v[i].y);
        s2 += (v[i].x+v[i+1].x)*(v[i+1].y-v[i].y);
    }
    for(i=1; i<=n; ++i)
    {
        s3 += v[i].x*(v[i+1].y-v[i-1].y);
    }
}
int main()
{
    read();
    solve();
    if(s1>0) g<<"sens trigonometric\n";
    else g<<"sens invers trigonometric\n";
    g<<s1<<" "<<s2<<" "<<s3<<"\n";
}