Cod sursa(job #3346)

Utilizator Binary_FireFlorin Pogocsan Binary_Fire Data 23 decembrie 2006 20:09:05
Problema Frac Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<stdio.h>
#include<stdlib.h>
#define fin "copaci.in"
#define fout "copaci.out"
#define NMAX 100002
int n,v[NMAX][2];
FILE *in,*out;

int gcd(int a,int b) {
	if (!b) return a;
	else return gcd(b,a%b);
}

int main() {
int i,inp,s=0,b=0;
	in=fopen(fin,"r"); out=fopen(fout,"w");
	fscanf(in,"%i",&n);
	
	for(i=1;i<=n;++i) fscanf(in,"%i%i",&v[i][0],&v[i][1]);
       		
	v[n+1][0]=v[1][0]; v[n+1][1]=v[1][1];

	for (i=1;i<=n;++i) 
		
		s=s+(v[i][0]*v[i+1][1]-v[i][1]*v[i+1][0]);	

	s=abs(s);

	for (i=1;i<=n;++i) {
		
		b=b+gcd(abs(v[i][0]-v[i+1][0]),abs(v[i][1]-v[i+1][1])) ;	
		
		//printf("%i\n",gcd(abs(v[i][0]-v[i+1][0]),abs(v[i][1]-v[i+1][1])));
	}

	s/=2; b/=2;

	inp=s-b+1;

	fprintf(out,"%i\n",inp);

	fclose(in); fclose(out);

	return 0;	
}