fork download
  1.  
  2. #include<bitset>
  3. #include<iostream>
  4. #include <stack>
  5. #include<algorithm>
  6. #include<map>
  7. #include<unordered_map>
  8. #include<unordered_set>
  9. #include<vector>
  10. #include<set>
  11. #include<queue>
  12. #include<cstdio>
  13. #include<random>
  14. #include<math.h>
  15. #include<numeric>
  16. #include<string>
  17. #include<fstream>
  18. #include<iomanip>
  19. #include <immintrin.h>
  20. #include <chrono>
  21. #define pq priority_queue
  22. #define qu queue
  23. #define ll long long
  24. #define Sroor_1000 ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
  25. using namespace std;
  26. const int MOD = 1e9 + 7;
  27.  
  28.  
  29. void solve() {
  30. ll count =0,a=0;
  31. int n,k; cin >> n;
  32. vector<int>Vnum(n),ans(513);
  33. ans[0] = 1;
  34. vector<pair<int, int>>Dp(n, { 1,0 });
  35. for (int i = 0; i < n; i++) {
  36. cin >> Vnum[i];
  37. ans[Vnum[i]]++;
  38. Dp[i].second = Vnum[i];
  39. }
  40. for (int i = 1; i < n; i++) {
  41. for (int j = 0; j < i; j++) {
  42. if (Vnum[i] > Vnum[j]) {
  43. if (Dp[i].first < Dp[j].first + 1) {
  44. Dp[i].first = Dp[j].first + 1;
  45. Dp[i].second = Dp[j].second ^ Vnum[i];
  46. ans[Dp[i].second] = 1;
  47. }
  48. }
  49. }
  50. }
  51. for (int i = 0; i < 513; i++)if (ans[i])cout << i << " ";
  52. }
  53.  
  54.  
  55.  
  56.  
  57. int main() {
  58.  
  59. Sroor_1000
  60.  
  61. // FILE* IN; freopen_s(&IN,"stdin", "r", stdin);
  62. //FILE* out;freopen_s(&out, "output.txt", "w", stdout);
  63. int t; t = 1;
  64. // cin >> t;
  65. while (t--)solve();
  66.  
  67.  
  68.  
  69. }
Success #stdin #stdout 0.01s 5288KB
stdin
Standard input is empty
stdout
0