fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main() {
  5. // your code goes here
  6. long long k,i,j,a[400005],b[200005],c[200005],d[200005],p[400005];
  7. bool u[400005]={0};
  8. int n,nn,nnn,note;
  9. cin >> n >> k;
  10. nn=n;
  11. for(i=0;i<n;i++) {
  12. cin >> a[i];
  13. c[i]=a[i];
  14. if(u[a[i]]){
  15. for(j=p[a[i]];j<=i;j++){
  16. u[a[j]]=0;
  17. if(a[j]!=0) nn--;
  18. a[j]=0;
  19. }
  20. u[a[i]]=0;
  21. } else {
  22. u[a[i]]=1;
  23. p[a[i]]=i;
  24. }
  25. }
  26. j=0;
  27. for(i=0;i<n;i++){
  28. if(a[i]!=0){
  29. b[j]=a[i];
  30. j++;
  31. }
  32. }
  33. nnn=nn;
  34. for(i=0;i<n;i++) {
  35. a[i+nn]=c[i];
  36. u[c[i]]=0;
  37. }
  38. for(i=0;i<nn;i++){
  39. a[i]=b[i];
  40. }
  41. n=n+nn;
  42. nn=n;
  43. cout << b[0] << endl;
  44. for(i=0;i<n;i++) {
  45. cin >> a[i];
  46. if(u[a[i]]){
  47. for(j=p[a[i]];j<=i;j++){
  48. u[a[j]]=0;
  49. if(a[j]!=0) nn--;
  50. a[j]=0;
  51. }
  52. u[a[i]]=0;
  53. } else {
  54. u[a[i]]=1;
  55. p[a[i]]=i;
  56. }
  57. }
  58. j=0;
  59. for(i=0;i<n;i++){
  60. if(a[i]!=0){
  61. d[j]=a[i];
  62. j++;
  63. }
  64. }
  65. note=(k-1)%(nn+2)-1;
  66. if(note==-1){
  67. for(i=0;i<nnn;i++){
  68. cout << b[i];
  69. if(i!=nnn-1) cout << " ";
  70. }
  71. } else {
  72. for(i=note;i<nn;i++){
  73. cout << d[i];
  74. if(i!=nn-1) cout << " ";
  75. }
  76. }
  77. cout << endl;
  78. return 0;
  79. }
Success #stdin #stdout 0s 26448KB
stdin
5 10
1 2 3 2 3
stdout
1
1 3