aboutsummaryrefslogtreecommitdiff
path: root/codeforces/LightsOut/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'codeforces/LightsOut/main.cpp')
-rw-r--r--codeforces/LightsOut/main.cpp47
1 files changed, 47 insertions, 0 deletions
diff --git a/codeforces/LightsOut/main.cpp b/codeforces/LightsOut/main.cpp
new file mode 100644
index 0000000..6b49d5d
--- /dev/null
+++ b/codeforces/LightsOut/main.cpp
@@ -0,0 +1,47 @@
+#include<bits/stdc++.h>
+
+using namespace std;
+
+bool safeMove(int i, int j) {
+ if(i < 0 || i > 2 || j < 0 || j > 2) {
+ return false;
+ }
+ return true;
+}
+
+vector<vector<int>> sumAdjacents(vector<vector<int>> v) {
+ vector<vector<int>> ans(3, vector<int> (3));
+ vector<int> dx = {1, 0, -1, 0};
+ vector<int> dy = {0, 1, 0, -1};
+ for(int i = 0; i < v.size();i++) {
+ for(int j = 0; j < v[i].size(); j++) {
+ ans[i][j] += v[i][j];
+ for(int k = 0; k < 4; k++) {
+ int x = i + dx[k];
+ int y = j + dy[k];
+ if(safeMove(x, y)) {
+ ans[i][j] += v[x][y];
+ }
+ }
+ (ans[i][j] & 1) ? ans[i][j] = 0 : ans[i][j] = 1;
+ }
+ }
+ return ans;
+}
+
+int main () {
+ ios_base::sync_with_stdio(false);
+ cin.tie(NULL);
+ vector<vector<int>> v (3, vector<int> (3));
+ for(auto &x : v) {
+ for(auto &y : x) {
+ cin >> y;
+ }
+ }
+ for(auto x : sumAdjacents(v)) {
+ for(auto z : x) {
+ cout << z;
+ }
+ cout << endl;
+ }
+}