From 7c3f32fab3b1a9d628d6856e7a923eb3c3b1ce5f Mon Sep 17 00:00:00 2001 From: Omar Magdy Date: Sat, 25 Jun 2022 18:32:00 +0200 Subject: Solved a couple of problems from codechef and codeforces --- LightsOut/main.cpp | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 LightsOut/main.cpp (limited to 'LightsOut/main.cpp') diff --git a/LightsOut/main.cpp b/LightsOut/main.cpp new file mode 100644 index 0000000..6b49d5d --- /dev/null +++ b/LightsOut/main.cpp @@ -0,0 +1,47 @@ +#include + +using namespace std; + +bool safeMove(int i, int j) { + if(i < 0 || i > 2 || j < 0 || j > 2) { + return false; + } + return true; +} + +vector> sumAdjacents(vector> v) { + vector> ans(3, vector (3)); + vector dx = {1, 0, -1, 0}; + vector 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> v (3, vector (3)); + for(auto &x : v) { + for(auto &y : x) { + cin >> y; + } + } + for(auto x : sumAdjacents(v)) { + for(auto z : x) { + cout << z; + } + cout << endl; + } +} -- cgit v1.2.3