diff options
| author | Omar Magdy <omar.professional8777@gmail.com> | 2022-06-25 18:32:00 +0200 |
|---|---|---|
| committer | Omar Magdy <omar.professional8777@gmail.com> | 2022-06-25 18:32:00 +0200 |
| commit | 7c3f32fab3b1a9d628d6856e7a923eb3c3b1ce5f (patch) | |
| tree | 484c58be6bc4ceadf35010ed8b81854994903503 /LightsOut/main.cpp | |
| parent | a0a07a438b6804fdca0e18b2d626ceedb982611c (diff) | |
| download | competitive-programming-7c3f32fab3b1a9d628d6856e7a923eb3c3b1ce5f.tar.xz competitive-programming-7c3f32fab3b1a9d628d6856e7a923eb3c3b1ce5f.zip | |
Solved a couple of problems from codechef and codeforces
Diffstat (limited to 'LightsOut/main.cpp')
| -rw-r--r-- | LightsOut/main.cpp | 47 |
1 files changed, 47 insertions, 0 deletions
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<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; + } +} |
