Cod sursa(job #1737073)

Utilizator danutbodbodnariuc danut danutbod Data 3 august 2016 12:04:02
Problema Aria Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.19 kb
//// var I cu arii de triunghiuri cu un varf in (0,0)
//#include <fstream>
//#include <iomanip>
//#include <cmath>
//#define NMAX 100003
//using namespace std;
//ifstream fi("aria.in");
//ofstream fo("aria.out");
//struct punct{double x,y ;};
//punct p[NMAX];
//double aria;
//int i,n;
//int main()
//{
//     fi>>n;
//     for(i=1; i<=n; i++)
//        fi>>p[i].x>>p[i].y;
//     p[n+1]=p[1];
//
//     for(i=1;i<=n;i++)
//        aria+=(p[i].x*p[i+1].y - p[i].y*p[i+1].x);
//    aria=aria/2;
//    if(aria<0)aria=-aria;
//    long long A=aria*1000;
//    fo<<fixed<<setprecision(3)<<(A/1000.0)<<'\n';
//
//    return 0;
//}
//cu arii de trapez
#include <fstream>
#include <iomanip>
#include <cmath>
#define NMAX 100003
using namespace std;
ifstream fi("aria.in");
ofstream fo("aria.out");
struct punct{double x,y ;};
punct p[NMAX];
double aria;
int i,n;
int main()
{
     fi>>n;
     for(i=1; i<=n; i++)
        fi>>p[i].x>>p[i].y;
     p[n+1]=p[1];

     for(i=1;i<=n;i++)
        aria+=(p[i].y+p[i+1].y)*(p[i+1].x-p[i].x);
    aria=aria/2;
    if(aria<0)aria=-aria;
    long long A=aria*1000;
    fo<<fixed<<setprecision(3)<<(A/1000.0)<<'\n';

    return 0;
}