现在的位置: 首页 > 综合 > 正文

USACO 3.4 Electric Fence

2012年08月19日 ⁄ 综合 ⁄ 共 953字 ⁄ 字号 评论关闭
TASK: fence9
LANG: C++

Compiling...
Compile: OK

Executing...
   Test 1: TEST OK [0.000 secs, 3028 KB]
   Test 2: TEST OK [0.000 secs, 3020 KB]
   Test 3: TEST OK [0.000 secs, 3020 KB]
   Test 4: TEST OK [0.000 secs, 3020 KB]
   Test 5: TEST OK [0.000 secs, 3020 KB]
   Test 6: TEST OK [0.000 secs, 3020 KB]
   Test 7: TEST OK [0.000 secs, 3020 KB]
   Test 8: TEST OK [0.000 secs, 3020 KB]
   Test 9: TEST OK [0.000 secs, 3020 KB]
   Test 10: TEST OK [0.000 secs, 3020 KB]
   Test 11: TEST OK [0.000 secs, 3020 KB]
   Test 12: TEST OK [0.000 secs, 3020 KB]

All tests OK.
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 }

抱歉!评论已关闭.