解いた問題

2/04/2012

SRM474 Div1 Easy

250
愚直に試す。Nの大きさに比べて、Cの長さが少ないことに気付ければ簡単。
class RouteIntersection {
public:
  string isValid(int N, vector <int> C, string M)
  {
    map<int, int> c;
    set< map<int, int> > vis;

    for (int i = 0; i < C.size(); ++i) {
      c[C[i]] = 0;
    }
    vis.insert(c);

    for (int i = 0; i < M.size(); ++i) {
      c[C[i]] += (M[i] == '+') ? +1 : -1;
      if (vis.count(c)) return "NOT VALID";
      vis.insert(c);
    }
   
    return "VALID";
  }
};

0 件のコメント :

コメントを投稿