Hatena::Grouptopcoder

naoya_t@topcoder RSSフィード

2009-01-10

SRM372 Div1 Easy: RoadConstruction

| 05:52 | SRM372 Div1 Easy: RoadConstruction - naoya_t@topcoder を含むブックマーク はてなブックマーク - SRM372 Div1 Easy: RoadConstruction - naoya_t@topcoder SRM372 Div1 Easy: RoadConstruction - naoya_t@topcoder のブックマークコメント

  • なんかはまった。
  • 最初deque使ってて分からなくなったのでvectorにした。STL練習大会。
  • Case#0でEが出てくれないとかで更にはまる
  • 結局55分もかけてるorz... System Testは通ったけど102.66点は痛い
class RoadConstruction {
 public:
  int getExitTime(vector<string> currentLanes) {
    int n=sz(currentLanes);
    vector<vector<pair<bool,char> > > lanes(n);
    int cars=0;
    rep(i,n){
      int l=sz(currentLanes[i]);
      rep(j,l){
        char c = currentLanes[i][j];
        lanes[i].push_back(make_pair(false,c));
        cars++;
      }
    }
    rep(t,cars){
      bool exitable=true;
      tr(lanes,it){
        if(it==(lanes.end()-1)){
          if(it->front().second=='D') return t;
          it->erase(it->begin());
          if(sz(*it)==0) lanes.erase(it);
          goto next;
        }else if(exitable){
          if(it->front().first){
            if(it->front().second=='D') return t;
            it->erase(it->begin());
            if(sz(*it)==0) lanes.erase(it);
            goto next;
          } else {
            it->front().first=true;
          }
        }
      }
   next:;
    }
    return -1;
  }
};
トラックバック - http://topcoder.g.hatena.ne.jp/n4_t/20090110