a53

palixor

a53
Aug 2nd, 2020 (edited)
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.78 KB | None | 0 0
  1. #include <fstream>
  2. #include <algorithm>
  3. using namespace std;
  4. int N,f,mod=1000000007;
  5. long long int w;
  6. unsigned int A[(1<<10)],B[(1<<10)];
  7. ifstream fin("palixor.in");
  8. ofstream fout("palixor.out");
  9.  
  10. void interschimb()
  11. {
  12. for(int bitmask=0;bitmask<(1<<10);++bitmask)
  13. swap(A[bitmask],B[bitmask]);
  14. return;
  15. }
  16.  
  17. int main()
  18. {
  19. fin>>N;
  20. A[0]=1;
  21. for(int i=0;i<10;++i)
  22. A[(1<<i)]=1;
  23. for(int i=1;i<=N;++i)
  24. {
  25. fin>>w;
  26. while(w)
  27. {
  28. f^=(1<<(w%10));
  29. w/=10;
  30. }
  31. for(int bitmask=0;bitmask<(1<<10);++bitmask)
  32. B[bitmask]=(A[bitmask]%mod+A[(bitmask^f)]%mod)%mod;
  33. interschimb();
  34. }
  35. if(!A[0])
  36. fout<<mod-1;
  37. else
  38. fout<<A[0]-1;
  39. return 0;
  40. }
Add Comment
Please, Sign In to add comment