AOJ0594 Super Metropolis

Super Metropolis | Aizu Online Judge

Introduction to Programming Introduction to Algorithms and Data Structures Library of Data Structures Library of Graph Algorithms Library of Computational Geometry Library of Dynamic Programming Library of Number Theory

右上または左下に行く場合は,斜めの移動が使えるのででいける.右下または左上に行く場合はかかる.

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <iostream>
#include <vector>
#include <string>
#include <cstring>
#include <algorithm>
#include <sstream>
#include <map>
#include <set>

#define REP(i,k,n) for(int i=k;i<n;i++)
#define rep(i,n) for(int i=0;i<n;i++)
#define INF 1<<30
#define pb push_back
#define mp make_pair

using namespace std;
typedef long long ll;
typedef pair<int,int> P;

int main() {
  int w, h, n;
  cin >> w >> h >> n;

  int x, y;
  cin >> x >> y;

  int ans = 0;
  rep(i, n - 1) {
      int a, b;
      cin >> a >> b;

      if(x <= a) {
          if(y <= b) {
              int c = a - x, d = b - y;
              ans += max(c, d);
          } else {
              int c = a - x, d = y - b;
              ans += c + d;
          }
      } else {
          if(y <= b) {
              int c = x - a, d = b - y;
              ans += c + d;
          } else {
              int c = x - a, d = y - b;
              ans += max(c, d);
          }
      }

      x = a;
      y = b;
  }

  cout << ans << endl;

  return 0;
}
Mar 6th, 2016
aoj