Advertisement
Guest User

Untitled

a guest
Jul 17th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.34 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <vector>
  3. #include <algorithm>
  4. #include <queue>
  5.  
  6. const int CASO_ESPECIAL= 0;
  7.  
  8. int main(){
  9. int usuarios;
  10. int i, n_envios;
  11.  
  12. while(scanf("%d", &usuarios)>0){
  13. if(usuarios==CASO_ESPECIAL)
  14. return 0;
  15.  
  16. std::pair<int, int> datos[usuarios];
  17. int frecs[usuarios];
  18.  
  19. for(i=0; i<usuarios; i++){
  20. scanf("%d", &datos[i].second);
  21. scanf("%d", &datos[i].first);
  22. frecs[i]= datos[i].first;
  23. }
  24.  
  25. sort(datos, datos+usuarios);
  26. std::sort(frecs, frecs+usuarios);
  27.  
  28. scanf("%d", &n_envios);
  29.  
  30.  
  31. std::priority_queue<std::pair<int,int>,std::vector<std::pair<int,int> >,
  32. std::greater<std::pair<int,int> > > resultado;
  33.  
  34. i=0;
  35.  
  36. while(n_envios){
  37. if(datos[i].first < datos[(i+1)%usuarios].first){
  38. resultado.push(datos[i]);
  39. datos[i].first+=frecs[i];
  40. i=0;
  41. n_envios--;
  42.  
  43. }else if(datos[i].first==datos[(i+1)%usuarios].first){
  44. resultado.push(datos[i]);
  45. datos[i].first+=frecs[i];
  46. i=(i+1)%usuarios;
  47. n_envios--;
  48.  
  49. }
  50. else{
  51. i=(i+1)%usuarios;
  52. }
  53. }
  54.  
  55. while(!resultado.empty()){
  56. printf("%dn", resultado.top().second);
  57. resultado.pop();
  58. }
  59.  
  60. printf("----n");
  61. }
  62.  
  63. return 0;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement