よじろめ覚書

私の理解度重視のソースコードです。

ABC025B - 双子とスイカ割り

問題:B - 双子とスイカ割り

#include <cstdio>
#include <iostream>
#include <string>
using namespace std;

#define REP(i, n) for (int i = 0; i < (n); ++i)

int getDis(int a, int b, int d) {
    if (d < a) {
        return a;
    }
    if (b < d) {
        return b;
    }

    return d;
}

int getDir(string x_dir) {
    if (x_dir == "East") {
        return 1;
    } else if (x_dir == "West") {
        return -1;
    }

    return 0;
}

int main(void) {
    int n, a, b, d, x = 0;
    string s;

    scanf ("%d %d %d", &n, &a, &b);
    REP(i, n) {
        cin >> s >> d;
        x += getDis(a, b, d) * getDir(s);
    }

    if (x > 0) {
        printf ("East %d\n", x);
    } else if (x < 0) {
        printf ("West %d\n", x * (-1));
    } else {
        printf ("0\n");
    }

    return 0;
}