Algorithm
Problem Statement for Algrid Problem link- https://community.topcoder.com/stat?c=problem_statement&pm=11348&rd=14433 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Code Examples
#1 Code Example with C++ Programming
Code -
C++ Programming
#include <bits/stdc++.h>
using namespace std;
class Algrid {
public:
vector<string> makeProgram(vector < string> output) {
vector<string> ret;
ret.resize(output.size());
ret[0] = output[0];
for(int i = 0; i < output.size() - 1; ++i) {
for(int msk = (1 << output[i].length()) - 1; msk >= -1; --msk) {
if(msk == -1) {
vector<string> ret;
return ret;
}
string s = "";
for(int j = output[i].length() - 1; j >= 0; --j)
s += ((msk >> j) & 1) ? 'B' : 'W';
string ss = s;
for(int j = 0; j < output[i].length() - 1; ++j) {
if(output[i][j] == 'B' && output[i][j + 1] == 'W')
s[j] = s[j + 1] = 'B';
if(output[i][j] == 'W' && output[i][j + 1] == 'B')
s[j] = s[j + 1] = 'W';
if(output[i][j] == 'B' && output[i][j + 1] == 'B')
swap(s[j], s[j + 1]);
}
if(s == output[i + 1]) {
ret[i + 1] = ss;
break;
}
}
}
return ret;
}
};
Copy The Code &
Try With Live Editor
Input
{"WWWWWWW",
"WWWWWWB",
"BBBBBWW"}
Output
{"WWWWWWW", "WWWWWWB", "BBBBBBB" }
Demonstration
TopCoder Solution SRM504-D2-1000 Statement for Algrid C,C++, Java, Js and Python ,SRM504-D2-1000,TopCoder Solution