Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.14 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <string>
  4. #include <fstream>
  5. #include <algorithm>
  6.  
  7. using namespace std;
  8. //ifstream in("antigray.in");
  9. //ofstream out("antigray.out");
  10. int pow3(int n){
  11. int x = 3;
  12. for (int i = 1; i < n; i++){
  13. x = x * 3;
  14. }
  15. return x;
  16. }
  17. void get(vector <int> &a, int x, int size){
  18. for (int i = 0; i < size; i++){
  19. a.push_back(x % 3);
  20. x /= 3;
  21. }
  22. reverse(a.begin(), a.end());
  23. }
  24. void write(vector <int> len){
  25. for(int i = 0; i < len.size(); i++){
  26. cout << len[i];
  27. }
  28. }
  29. void shift(vector <int> &len){
  30. for(int i = 0; i < len.size(); i++){
  31. len[i] += 1;
  32. len[i] %= 3;
  33. }
  34. }
  35. int main()
  36. {
  37.  
  38. ifstream in("antigray.in");
  39. ofstream out("antigray.out");
  40. int n;
  41. cin >> n;
  42. int m = pow3(n - 1);
  43. for (int i = 0; i < m ; i++){
  44. vector <int> len;
  45. get(len, i, n);
  46. //for(int j = 0; j <= 2; j++){
  47. write(len);
  48. //if(i != m - 1 || j != 2)
  49. cout << endl;
  50. shift(len);
  51. write(len);
  52. //if(i != m - 1 || j != 2)
  53. cout << endl;
  54. shift(len);
  55. write(len);
  56. //if(i != m - 1 || j != 2)
  57. cout << endl;
  58. }
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement