fork download
  1. #include<bits/stdc++.h>
  2.  
  3. #define MAX 1000000001
  4.  
  5. using namespace std;
  6.  
  7. bitset<MAX> bs;
  8.  
  9. void print_reversed_queue(queue<int> * q);
  10.  
  11. int main(){
  12. int n,
  13. k,
  14. aux;
  15. queue<int> messages;
  16. scanf ("%d%d", &n, &k);
  17. while (n--){
  18. scanf("%d", &aux);
  19. if (!bs[aux]){
  20. if (messages.size() == k){
  21. bs[messages.front()] = 0;
  22. messages.pop();
  23. }
  24. bs[aux] = 1;
  25. messages.push(aux);
  26. }
  27. }
  28. printf("%d\n", int(messages.size()));
  29. print_reversed_queue(&messages);
  30. return 0;
  31. }
  32.  
  33. void print_reversed_queue(queue<int> * q){
  34. if (q->size() > 0){
  35. int f = q->front();
  36. q->pop();
  37. print_reversed_queue(q);
  38. printf("%d ", f);
  39. }
  40. }
  41.  
Time limit exceeded #stdin #stdout 5s 4168KB
stdin
Standard input is empty
stdout
Standard output is empty