Cod sursa(job #1229743)

Utilizator thinkphpAdrian Statescu thinkphp Data 18 septembrie 2014 00:21:29
Problema Aria Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <fstream>
#include <iomanip>
#define MAX 500001
#define FIN "aria.in"
#define FOUT "aria.out"

using namespace std;

double X[ MAX ], Y[ MAX ];
double sol = 0;
int N;

void read();
void solve();
double det(double,double,double,double);

int main() {

     read();
     solve();

   return (0);
};

void read() {

     int i;

     ifstream fin( FIN );

     fin>>N;

     for(i = 0; i < N; i++) fin>>X[i]>>Y[i];
             
     X[ N ] = X[ 0 ];
     Y[ N ] = Y[ 0 ]; 
};

void solve() {

     ofstream fout( FOUT );

     for(int i = 0; i < N; i++) sol += det(X[i], X[i+1], Y[i], Y[i+1]);

     sol /= 2; if(sol<0) sol *= -1;
  
     fout<<fixed<<setprecision(8)<<sol;
}

double det(double x1,double y1,double x2,double y2) {

      return x1 * y2 - x2 * y1;
}