Advertisement
Riposati

Elfo das trevas

Jan 5th, 2017
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.67 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. struct rena{
  6.  
  7.     int idade;
  8.     double peso;
  9.     double altura;
  10.     string nome;
  11.  
  12. }typedef Rena;
  13.  
  14. int main()
  15. {
  16.     int testes,totRenas,qtdRenasPuxaraoTreno,numCasoTeste=1;
  17.     vector<Rena>vetorRenas;
  18.     vector<Rena>vetorRenasPuxaraoTreno;
  19.     int cont;
  20.  
  21.     scanf("%d",&testes);
  22.  
  23.     while(testes--){
  24.  
  25.         scanf("%d %d",&totRenas,&qtdRenasPuxaraoTreno);
  26.         Rena rena;
  27.  
  28.         for(int i=0;i<totRenas;i++){
  29.             cin>>rena.nome>>rena.peso>>rena.idade>>rena.altura;
  30.             vetorRenas.push_back(rena);
  31.         }
  32.         //ordena tudo pelo peso
  33.         sort(vetorRenas.begin(),vetorRenas.end(), [](const Rena &x, const Rena &y){
  34.                 return (x.peso > y.peso);
  35.             });
  36.  
  37.         for(int i=0;i<qtdRenasPuxaraoTreno;i++){
  38.             vetorRenasPuxaraoTreno.push_back(vetorRenas[i]);
  39.         }
  40.  
  41.         // daqui pra baixo trabalho somente com as renas que puxarão o treno
  42.         cont = 0;
  43.         for(int i=0;i<vetorRenasPuxaraoTreno.size()-1;i++){
  44.             if(vetorRenasPuxaraoTreno[i].peso==vetorRenasPuxaraoTreno[i+1].peso){
  45.                 cont++;
  46.             }
  47.         }
  48.  
  49.         if(cont >= 2){
  50.             //ordena as que irao pela idade
  51.             sort(vetorRenasPuxaraoTreno.begin(),vetorRenasPuxaraoTreno.end(), [](const Rena &x, const Rena &y){
  52.                     return (x.idade < y.idade);
  53.                 });
  54.         }
  55.  
  56.         cont=0;
  57.         for(int i=0;i<vetorRenasPuxaraoTreno.size()-1;i++){
  58.             if(vetorRenasPuxaraoTreno[i].idade==vetorRenasPuxaraoTreno[i+1].idade){
  59.                 cont++;
  60.             }
  61.         }
  62.  
  63.         if(cont >= 2){
  64.             //ordena as que vao pela altura
  65.             sort(vetorRenasPuxaraoTreno.begin(),vetorRenasPuxaraoTreno.end(), [](const Rena &x, const Rena &y){
  66.                 return (x.altura < y.altura);
  67.             });
  68.         }
  69.  
  70.         cont= 0;
  71.         for(int i=0;i<vetorRenasPuxaraoTreno.size()-1;i++){
  72.             if(vetorRenasPuxaraoTreno[i].altura==vetorRenasPuxaraoTreno[i+1].altura){
  73.                 cont++;
  74.             }
  75.         }
  76.  
  77.         if(cont >= 2){
  78.             // ordena as que vao pelo nome
  79.             sort(vetorRenasPuxaraoTreno.begin(),vetorRenasPuxaraoTreno.end(), [](const Rena &x, const Rena &y){
  80.                 return (x.nome < y.nome);
  81.             });
  82.         }
  83.  
  84.         printf("CENARIO {%d}\n",numCasoTeste);
  85.         for(int i=0;i<vetorRenasPuxaraoTreno.size();i++){
  86.             cout<<i+1<<" - "<<vetorRenasPuxaraoTreno[i].nome<<'\n';
  87.         }
  88.         numCasoTeste++;
  89.         vetorRenas.clear();
  90.         vetorRenasPuxaraoTreno.clear();
  91.     }
  92.     return 0;
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement