解いた問題

5/17/2011

SRM338Div2

250
class BinaryIncrementation {
public:
  string plusOne(string x) {
    reverse( ALL(x) );
    int sum = 0;
    for(int i=0; i<x.size(); ++i){
      sum += (x[i] == '1') * (1 << i);
    }
    ++sum;
    string s;
    while( sum ){
      s += '0' + ( sum & 1);
      sum /= 2;
    }
    reverse( ALL(s) );
    return s;
  }
};

SRM前で追い出された。残りはまた後で。

500
1100

0 件のコメント :

コメントを投稿