Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <string>
- #include <fstream>
- #include <algorithm>
- using namespace std;
- //ifstream in("antigray.in");
- //ofstream out("antigray.out");
- int pow3(int n){
- int x = 3;
- for (int i = 1; i < n; i++){
- x = x * 3;
- }
- return x;
- }
- void get(vector <int> &a, int x, int size){
- for (int i = 0; i < size; i++){
- a.push_back(x % 3);
- x /= 3;
- }
- reverse(a.begin(), a.end());
- }
- void write(vector <int> len){
- for(int i = 0; i < len.size(); i++){
- cout << len[i];
- }
- }
- void shift(vector <int> &len){
- for(int i = 0; i < len.size(); i++){
- len[i] += 1;
- len[i] %= 3;
- }
- }
- int main()
- {
- ifstream in("antigray.in");
- ofstream out("antigray.out");
- int n;
- cin >> n;
- int m = pow3(n - 1);
- for (int i = 0; i < m ; i++){
- vector <int> len;
- get(len, i, n);
- //for(int j = 0; j <= 2; j++){
- write(len);
- //if(i != m - 1 || j != 2)
- cout << endl;
- shift(len);
- write(len);
- //if(i != m - 1 || j != 2)
- cout << endl;
- shift(len);
- write(len);
- //if(i != m - 1 || j != 2)
- cout << endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement