1 /*
2 PROG: fence9
3 ID: jiafeim1
4 LANG: C++
5 */
6
7 #include <stdio.h>
8 #include <string.h>
9 #include <math.h>
10 int n, m, p;
11 long gcd(long a, long b)
12 {
13 if (a < b)
14 {
15 long c = a;
16 a = b;
17 b = c;
18 }
19 while (a != b && b != 0)
20 {
21 long k = a % b;
22 a = b;
23 b = k;
24 }
25 return a;
26 }
27
28 int main()
29 {
30 FILE *fin = fopen("fence9.in", "r");
31 FILE *fout = fopen("fence9.out", "w");
32 fscanf(fin, "%d%d%d", &n, &m, &p);
33 if (m == 0 || m == 1)
34 {
35 fprintf(fout, "0\n");
36 return 0;
37 }
38 fprintf(fout, "%ld\n", ((p*m) >> 1) + 1 - (((gcd(n, m) + 1) + (gcd(abs(n - p), m) + 1) + p - 2) >> 1));
39 fclose(fin);
40 fclose(fout);
41 return 0;
42 }