解いた問題

8/23/2012

SRM436 Div2 Easy

250

2回間違った。ツライ。



class FriendScore {
public:
  int highestScore(vector <string> F)
  {
    const int N = F.size();
    int cnt[N];
    fill(cnt, cnt + N, 0);

    for (int i = 0; i < N; ++i) {
      for (int j = 0; j < N; ++j) {
        if (i == j) continue;
        if (F[i][j] == 'Y') ++cnt[j];
        else {
          for (int k = 0; k < N; ++k) {
            if (i == k || j == k) continue;
            if (F[i][k] == 'Y' && F[k][j] == 'Y') {
              ++cnt[j];
              break;
            }
          }
        }
      }
    }

    return *max_element(cnt, cnt + N);
  }
};