Mai intai trebuie sa te autentifici.
Cod sursa(job #2221750)
| Utilizator | Data | 15 iulie 2018 19:08:42 | |
|---|---|---|---|
| Problema | Aria | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 1.06 kb |
#include <cstdio>
double get_double()
{
char c = getchar(), sign = '+';
double integerPart = 0;
for(; c < 48 || c > 57; c = getchar()) sign = c;
for(; c > 47 && c < 58; c = getchar()) integerPart = integerPart * 10 + c - '0';
if(c != '.') return (sign == '-') ? -integerPart : integerPart;
double fractionalPart = 0, power = 1;
for(; (c = getchar()) > 47 && c < 58; power *= 10)
fractionalPart = fractionalPart * 10 + c - '0';
return (sign == '-') ? -(integerPart + fractionalPart / power) : (integerPart + fractionalPart / power);
}
int main()
{
freopen("aria.in", "r", stdin);
freopen("aria.out", "w", stdout);
int N; double x[100002], y[100002], area = 0;
N = get_double();
for(int i = 1; i <= N; ++i)
{
x[i] = get_double();
y[i] = get_double();
}
x[N + 1] = x[1];
y[N + 1] = y[1];
for(int i = 1; i <= N; i++)
{
area += x[i] * y[i + 1] - y[i] * x[i + 1];
}
printf("%.5lf", area / 2);
return 0;
}
