Advertisement
Guest User

Untitled

a guest
May 11th, 2017
263
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.44 KB | None | 0 0
  1. priority_queue < pair < int , int >,vector < pair < int , int > > , greater < pair < int , int > > > fq, sq, tq;
  2. int n, m, q;
  3. int price[200100];
  4. int color1[200100];
  5. int color2[200100];
  6. bool vis[200100];
  7.  
  8. int main()
  9. {
  10. cin >> n;
  11. for(int i = 1 ; i <= n ; i++){
  12. SF(price[i]);
  13. }
  14. for(int i = 1 ; i <= n ; i++){
  15. SF(color1[i]);
  16. }
  17. for(int i = 1 ; i <= n ; i++){
  18. SF(color2[i]);
  19. }
  20. //cout << endl;
  21. for(int i = 1 ; i <= n ; i++){
  22. if(color1[i] == 1){
  23. fq.push({price[i], i});
  24. }
  25. if(color1[i] == 2){
  26. sq.push({price[i], i});
  27. }
  28. if(color1[i] == 3){
  29. tq.push({price[i], i});
  30. }
  31. if(color2[i] == 1){
  32. fq.push({price[i], i});
  33. }
  34. if(color2[i] == 2){
  35. sq.push({price[i], i});
  36. }
  37. if(color2[i] == 3){
  38. tq.push({price[i], i});
  39. }
  40. //cout << color1[i] << ' ' << color2[i] << ' '<< price[i] << endl;
  41. }
  42. //cout << fq.size() << sq.size() << ' ' << tq.size()
  43. cin >> m;
  44. for(int i = 1 ; i <= m ; i++){
  45. SF(q);
  46. bool B = true;
  47. if(q == 1){
  48. while(fq.size()){
  49. pair < int , int > u = fq.top();
  50. fq.pop();
  51. if(!vis[u.S]){
  52. cout << u.F << ' ';
  53. vis[u.S] = true;
  54. B = false;
  55. break;
  56. }
  57. }
  58. if(B){
  59. cout << -1 << ' ';
  60. }
  61. }
  62. if(q == 2){
  63. while(sq.size()){
  64. pair < int , int > u = sq.top();
  65. sq.pop();
  66. if(!vis[u.S]){
  67. cout << u.F << ' ';
  68. vis[u.S] = true;
  69. B = false;
  70. break;
  71. }
  72. }
  73. if(B){
  74. cout << -1 << ' ';
  75. }
  76. }
  77. if(q == 3){
  78. while(tq.size()){
  79. pair < int , int > u = tq.top();
  80. tq.pop();
  81. if(!vis[u.S]){
  82. cout << u.F << ' ';
  83. vis[u.S] = true;
  84. B = false;
  85. break;
  86. }
  87. }
  88. if(B){
  89. cout << -1 << ' ';
  90. }
  91. }
  92. }
  93. return 0;
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement