Cod sursa(job #3313315)

Utilizator alexqStefanescu Mihai Alexandru alexq Data 3 octombrie 2025 12:37:41
Problema Aria Scor 0
Compilator c-64 Status done
Runda Arhiva educationala Marime 1 kb
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

struct coord
{
    float x,y;
};
int main(void)
{
    struct coord curr,ant,primul;
    int n;
    float p,P,S,a,b,c;
    P=0;
    scanf("%d", &n);
    scanf("%f%f", &primul.x, &primul.y);
    scanf("%f%f", &curr.x, &curr.y);
    P=P+sqrt((primul.x-curr.x)*(primul.x-curr.x)+(primul.y-curr.y)*(primul.y-curr.y));
    for(int i=1;i<n-1;i++){
        ant=curr;
        scanf("%f%f", &curr.x, &curr.y);
        P=P+sqrt((curr.x-ant.x)*(curr.x-ant.x)+(curr.y-ant.y)*(curr.y-ant.y));
        a=sqrt((curr.x-ant.x)*(curr.x-ant.x)+(curr.y-ant.y)*(curr.y-ant.y));
        b=sqrt((primul.x-ant.x)*(primul.x-ant.x)+(primul.y-ant.y)*(primul.y-ant.y));
        c=sqrt((curr.x-primul.x)*(curr.x-primul.x)+(curr.y-primul.y)*(curr.y-primul.y));
        p=(a+b+c)/2;
        S=S+sqrt(p*(p-a)*(p-b)*(p-c));
    }
    P=P+sqrt((primul.x-curr.x)*(primul.x-curr.x)+(primul.y-curr.y)*(primul.y-curr.y));
    printf("%f\n%f", P, S);


    return 0;
}