Cod sursa(job #3365011)

Utilizator MesterelMester Darius Mesterel Data 15 septembrie 2026 18:34:15
Problema Aria Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.08 kb
#include <bits/stdc++.h>
//#include "test.h"
using namespace std;

vector<pair<long long, long long>> v(100002);

//pair<int,int> v[100002];

int inm(int a, int b);

int main(){
    //cout<<sizeof(long);
    //cout<<inm(2,3)<<' '<<suma_si_inm(2,5);
    ifstream fin("aria.in");
    ofstream fout("aria.out");
    int n, x, y;
    fin>>n;
    for(int i=1; i<=n; i++)
    	fin>>v[i].first>>v[i].second;
  	//facem sa fie sir circular, adica dupa ult elem pune primul
  	v[n+1].first = v[1].first;
  	v[n+1].second = v[1].second;

  	long long aria=0; //aria la poligon
    for(int i=1; i<=n; i++) //aici facem ariile la fiecare triunghi ce compun poligonul
    {
		aria+=v[i].first*v[i+1].second - v[i+1].first*v[i].second;
    }
  	 //1/2 cum ambele sunt int da 0, dar daca faci 1.0/2.0 rezulta 0.5 ca sunt double(float)
  	long double rez=0.5*aria;
    //5 cifre dupa virgula
    long long sp=rez;
    long long cct=0;
    while (sp){
        ++cct;
        sp/=10;
    }
    fout<<setprecision(6+cct)<<fabs(rez);
}

int inm(int a, int b){
    return a*b;
}