SHARE
TWEET

Untitled

a guest Jul 17th, 2017 45 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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;
RAW Paste Data
Top