Advertisement
Guest User

Untitled

a guest
Mar 31st, 2020
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.27 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <set>
  4. #include <algorithm>
  5. #include <cmath>
  6. #include <iomanip>
  7. #include <string>
  8. #include <map>
  9. #include <set>
  10. #include <cassert>
  11. #include <ciso646>
  12. #include <climits>
  13. #include <cmath>
  14. #include <cstdint>
  15. #include <cstdio>
  16. #include <cstdlib>
  17. #include <cstring>
  18. #include <ctime>
  19. #include <array>
  20. #include <bitset>
  21. #include <deque>
  22. #include <forward_list>
  23. #include <list>
  24. #include <map>
  25. #include <queue>
  26. #include <set>
  27. #include <stack>
  28. #include <unordered_map>
  29. #include <unordered_set>
  30. #include <vector>
  31. #include <algorithm>
  32. #include <complex>
  33. #include <functional>
  34. #include <initializer_list>
  35. #include <iterator>
  36. #include <limits>
  37. #include <locale>
  38. #include <numeric>
  39. #include <regex>
  40. #include <string>
  41. #include <utility>
  42. #include <fstream>
  43. #include <iostream>
  44. #include <sstream>
  45. #include <iomanip>
  46. #include <random>
  47. #include <memory>
  48. #include <chrono>
  49. using namespace std;
  50. const int inf = 1e9 + 7;
  51. using ll = long long;
  52. #define pb push_back
  53. #define v vector<ll>
  54. #define sorti sort(s.begin(), s.end());
  55. ll gcd (ll a, ll b) {
  56. if (b == 0) {
  57. return a;
  58. }
  59. return gcd(b, a % b);
  60. }
  61.  
  62.  
  63. int main() {
  64. ll t = 1;
  65. cin >> t;
  66. for (int u = 0; u < t; u++) {
  67. ll n;
  68. cin >> n;
  69. vector<ll> s(n), dp(n, -1);
  70. for (int i = 0; i < n; i++) {
  71. cin >> s[i];
  72. }
  73. vector<ll> pr(11);
  74. pr[0] = 2;
  75. pr[1] = 3;
  76. pr[2] = 5;
  77. pr[3] = 7;
  78. pr[4] = 11;
  79. pr[5] = 13;
  80. pr[6] = 17;
  81. pr[7] = 19;
  82. pr[8] = 23;
  83. pr[9] = 29;
  84. pr[10] = 31;
  85. ll kol = 1;
  86. for (int i = 0; i < pr.size(); i++) {
  87. ll f = 0;
  88. for (int j = 0; j < n; j++) {
  89. if (dp[j] == -1 && s[j] % pr[i] == 0) {
  90. f++;
  91. dp[j] = kol;
  92. }
  93. }
  94. if (f > 0) {
  95. kol++;
  96. }
  97. }
  98. ll koli = -1;
  99. for (int i = 0; i < n; i++) {
  100. koli = max(koli, dp[i]);
  101. }
  102. cout << koli << endl;
  103. for (int i = 0; i < n; i++) {
  104. cout << dp[i] << " ";
  105. }
  106. cout << endl;
  107. }
  108. return 0;
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement