#include<vector>
#include<string>
#include<iostream>
using namespace std;
vector<string> decode(string message)
{
vector<string> result;
const int n=message.size();
if(n==1)
{
if(message[0]>'2')
{
result.push_back("NONE");
result.push_back("NONE");
return result;
}
else
{
result.push_back(message);
result.push_back(message);
return result;
}
}
string p(n,'0');
for(int m=1;m>=0;--m)
{
p[0]=1-m+'0';
p[1]=message[0]-p[0];
if(p[1]<0||p[1]>1)
{
result.push_back("NONE");
continue;
}
else
{
p[1]+='0';
int i;
for(i=1;i<n-1;++i)
{
p[i+1]=message[i]+'0'-p[i]-p[i-1];
if(p[i+1]<0||p[i+1]>1)
{
result.push_back("NONE");
break;
}
p[i+1]+='0';
}
if(i==n-1)
result.push_back(p);
}
}
return result;
}
int main()
{
string message("3");
vector<string> result=decode(message);
for(auto res:result)
cout<<res<<" ";
cout<<endl;
return 0;
}
#include<string>
#include<iostream>
using namespace std;
vector<string> decode(string message)
{
vector<string> result;
const int n=message.size();
if(n==1)
{
if(message[0]>'2')
{
result.push_back("NONE");
result.push_back("NONE");
return result;
}
else
{
result.push_back(message);
result.push_back(message);
return result;
}
}
string p(n,'0');
for(int m=1;m>=0;--m)
{
p[0]=1-m+'0';
p[1]=message[0]-p[0];
if(p[1]<0||p[1]>1)
{
result.push_back("NONE");
continue;
}
else
{
p[1]+='0';
int i;
for(i=1;i<n-1;++i)
{
p[i+1]=message[i]+'0'-p[i]-p[i-1];
if(p[i+1]<0||p[i+1]>1)
{
result.push_back("NONE");
break;
}
p[i+1]+='0';
}
if(i==n-1)
result.push_back(p);
}
}
return result;
}
int main()
{
string message("3");
vector<string> result=decode(message);
for(auto res:result)
cout<<res<<" ";
cout<<endl;
return 0;
}