Guest User

Untitled

a guest
Dec 31st, 2019
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.79 KB | None | 0 0
  1. //For higher stack size use g++ -O2 -std=c++11 -Wall -Wl,--stack=268435456 a.cpp -o a.exe in cmd
  2. #include <bits/stdc++.h>
  3. #include <cstdio>
  4. #include <cstring>
  5. #include <cmath>
  6. #include <cstring>
  7. #include <chrono>
  8. #include <complex>
  9. #define ll long long
  10. #define ld long double
  11. #define vi vector<int>
  12. #define vll vector<ll>
  13. #define vvi vector < vi >
  14. #define pii pair<int,int>
  15. #define pll pair<long long, long long>
  16. #define mod 1000000007
  17. #define inf 1000000000000000001;
  18. #define all(c) c.begin(),c.end()
  19. #define mp(x,y) make_pair(x,y)
  20. #define mem(a,val) memset(a,val,sizeof(a))
  21. #define eb emplace_back
  22. #define pb push_back
  23. #define f first
  24. #define s second
  25.  
  26. using namespace std;
  27. int main()
  28. {
  29. std::ios::sync_with_stdio(false);
  30. int T;
  31. cin>>T;
  32. // cin.ignore(); must be there when using getline(cin, s)
  33. while(T--)
  34. {
  35. int n,k,i,j;
  36. cin>>n>>k;
  37. set<pii> st;
  38. int ar[n+1],ar2[n+1];
  39. for(i=1;i<=n;++i)
  40. {
  41. cin>>ar[i];
  42. }
  43. for(i=1;i<=k;++i)
  44. {
  45. ar2[i]=ar[i];
  46. st.insert({ar2[i],i});
  47. }
  48. for(i=k+1;i<=n;++i)
  49. {
  50. auto it=st.begin();
  51. ar2[i]=(*it).f^ar[i];
  52. st.erase(it);
  53. st.insert({ar2[i],i});
  54. }
  55. vector<pii> v;
  56. for(auto it:st)
  57. {
  58. v.pb({it.s,it.f});
  59. }
  60. sort(v.begin(),v.end());
  61. for(auto it:v)
  62. cout<<it.s<<" ";
  63. cout<<endl;
  64. }
  65. return 0;
  66. }
Add Comment
Please, Sign In to add comment