SRM538 Div2 Easy(300) LeftOrRight
LeftOrRight
?を全てLに置換したプログラムか、全てRに置換したプログラムが答え。
#include <string> using namespace std; int reach( string s ) { int p = 0; int r = 0; for ( int i=0; i<(int)s.length(); i++ ) { p += s[i]=='L' ? -1 : 1; r = max( r, abs(p) ); } return r; } class LeftOrRight{public: int maxDistance( string program ) { string l, r; for ( int i=0; i<(int)program.size(); i++ ) { l += program[i]=='?' ? 'L' : program[i]; r += program[i]=='?' ? 'R' : program[i]; } return max( reach(l), reach(r) ); }};