Advertisement
Guest User

Untitled

a guest
Mar 26th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.10 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <cstdio>
  4. #include <cstring>
  5. #include <vector>
  6. #include <queue>
  7. #include <cmath>
  8. #include <map>
  9. #include <unordered_map>
  10. using namespace std;
  11.  
  12. #define ff(i, n) for (int i = 0, END = (n); i < END; i ++)
  13. #define fff(i, n, m) for (int i = (n), END = (m); i <= END; i ++)
  14. #define dff(i, n, m) for (int i = (n), END = (m); i >= END; i --)
  15. #define travel(e, first) for (int e = first, v = vv[first]; ~e; e = nxt[e], v = vv[e])
  16. #define clr(a, b) memset(a, b, sizeof(a))
  17. typedef long long ll;
  18.  
  19. int n, ans;
  20. bool can[10][10];
  21. bool done[10];
  22.  
  23. void input() {
  24. ans = 0;
  25. clr(can, 0);
  26. clr(done, 0);
  27.  
  28. char s[10];
  29. fff (i, 1, n) {
  30. scanf("%s", s);
  31. ff (j, strlen(s)) {
  32. char now = s[j];
  33. can[i][now - '0'] = 1;
  34. }
  35. }
  36. }
  37.  
  38. void solve(int c) {
  39. if (c == 0) {
  40. ans ++;
  41. return;
  42. }
  43.  
  44. ff(i, 6) if (!done[i] && can[c][i]) {
  45. done[i] = true;
  46. solve(c - 1);
  47. done[i] = false;
  48. }
  49. }
  50.  
  51. int main() {
  52. while (scanf("%d", &n) == 1) {
  53. input();
  54. solve(n);
  55. printf("%d\n", ans);
  56. }
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement