読者です 読者をやめる 読者になる 読者になる

SRM144 DIV1 300

#include <vector>
#include <string>
#include <sstream>

using namespace std;

class BinaryCode {
public:
	vector<string> decode(string message){
		vector<string> dst;
		vector<int> Q;
		vector<int> P;
		int len = 0;
		len = message.length();
		
		for(int i = 0; i < len; i++)
			Q.push_back(message[i]-48);
		
		for(int t = 0; t < 2; t++){
		
		P.push_back(t);
		P.push_back(Q[0]-P[0]);
		
		for(int i = 1; i < len - 1; i++)
			P.push_back(Q[i]-P[i-1]-P[i]);
		
		if(Q[len-1] == (P[len-2] + P[len-1])){
			stringstream tmp;
			for(int i = 0; i < P.size(); i++)
				tmp << P[i];
			dst.push_back(tmp.str());
		}else{
			dst.push_back("NONE");
		}
		
		P.clear();
		
		}
		

		return dst;
	}
};

System> peryaudo has submitted the 300-point problem for 90.00 points

ひくっ


おそらく、こういう物はとりあえず問題文読むのも半ばでコードを書きはじめたほうがいいのだと思う。
まあそのへんも慣れですなぁ