Cod sursa(job #1029161)

Utilizator stefan.petreaStefan Petrea stefan.petrea Data 15 noiembrie 2013 01:33:05
Problema Aria Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.12 kb
#include <fstream>
#include <iostream>
using namespace std;
struct _point { long x,y;};
typedef struct _point point;

class PolygonArea {
    public:
        ifstream I;
        ofstream O;
        long n;
        point p[100000];
        double area;
        void read() {
            I >> n;
            for(long i=0;i<n;i++){
                point q;
                I >> q.x >> q.y;
                p[i].x = q.x;
                p[i].y = q.y;
            };
            p[n].x = p[0].x;
            p[n].y = p[0].y;
        };
        void solve() {
            area = 0;
            for(long i=0;i<n;i++){
                //cout << p[i].x << p[i].y<<endl;;
                area += p[i].x * p[i+1].y - p[i+1].x * p[i].y;
            };
            area /= 2;
            if(area<0)
                area = -area;
            //cout << area << endl;
            O.precision(5);
            O.setf( std::ios::fixed, std::ios::floatfield );
            O << area;
        };
        PolygonArea() : I("aria.in"), O("aria.out") {
        };
        ~PolygonArea() {
        };
};

int main(){
    PolygonArea u;
    u.read();
    u.solve();
};