解いた問題

4/26/2012

SRM513 Div1 Easy

250

全部試す。



class YetAnotherIncredibleMachine {
public:
  int countWays(vector <int> M, vector <int> L, vector <int> B)
  {
    sort(B.begin(), B.end());

    const int size = M.size();
    lli ret = 1;
    for (int i = 0; i < (int)size; ++i) {
      lli cnt = 0;
      for (int j = M[i] - L[i]; j <= M[i]; ++j) {
        int left = j;
        int right = j + L[i];
        bool flg = true;
        for (int k = 0; k < (int)B.size(); ++k) {
          flg = flg && !(left <= B[k] && B[k] <= right);
        }
        cnt += flg;
      }
      ret *= cnt;
      ret %= mod;
    }
    return ret;
  }
};