Cod sursa(job #2201247)

Utilizator PushkinPetolea Cosmin Pushkin Data 3 mai 2018 23:36:35
Problema Aria Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include <iostream>
#include <bits/stdc++.h>
#include <fstream>
#include <cmath>
using namespace std;
ifstream f("aria.in");
ofstream g("aria.out");
int n;
struct pt
{
    double x, y;
    pt(double xx, double yy)
    :x(xx), y(yy){}
};
inline double lng(pt p1, pt p2)
{
    return sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));
}
vector<pt> v;
vector<double> s;
inline double arie(int i1, int i2)
{
    double l=lng(v[i1], v[i2]), p=(s[i1]+s[i2]+l)/2;
    return sqrt(p*(p-s[i1])*(p-s[i2])*(p-l));
}
void rd()
{
    f>>n;
    v.resize(n+1, pt(0, 0));
    s.resize(n+1);
    int i=1;
    f>>v[i].x>>v[i].y;
    i++;
    while(f>>v[i].x>>v[i].y)
    {
        s[i]=lng(v[1], v[i]);
        i++;
    }
}
double arie_poligon()
{
    double a=0;
    for(int i=2;i<n;i++)
        a+=arie(i, i+1);
    return a;
}
int main()
{
    rd();
    g<<arie_poligon();
    f.close();
    g.close();
    return 0;
}