Pagini recente » Cod sursa (job #3287549) | Cod sursa (job #240940) | Cod sursa (job #2912171) | Cod sursa (job #3208968) | Cod sursa (job #3346)
Cod sursa(job #3346)
#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;
}