fork download
  1. #include<iostream>
  2. using namespace std;
  3.  
  4. int main() {
  5. int N,Ri,Ei,partidas,tamanho,contador,posicao1,i,achar,total1,total2;
  6. string palavra;
  7.  
  8. cin>>N;
  9.  
  10. partidas=N/2;
  11. achar=0;
  12. int demora[N+5],classificacao[N+5],rapidez[N+5],total[N+5];
  13.  
  14. contador=0;
  15. while(contador<N) {
  16. //Lê a quantidade de jogadores
  17. cin>>Ri>>Ei;
  18.  
  19. demora[contador]=Ri;
  20. rapidez[contador]=Ei;
  21. classificacao[contador]=0;
  22.  
  23. contador++;
  24. }
  25.  
  26. cin.ignore();
  27. getline(cin,palavra);
  28. //cout<<palavra<<" esse é o tamnho"<<endl;
  29.  
  30. tamanho=palavra.length();
  31. cout << "Tamanho >>>> " << tamanho << " | Palavra >>> " << palavra << endl;
  32. contador=1;//partida de numero 1
  33.  
  34. total[0]=(rapidez[0]*tamanho)+demora[0];
  35. for(i=1; i<N; i++) {
  36. //vai me cada vetor e classifica os jogadores
  37. total[i]=(rapidez[i]*tamanho)+demora[i];
  38.  
  39. if(total[i]>total[i-1]) {
  40. //classifica primeira variavel perdedor
  41. classificacao[i]=contador;
  42. classificacao[i-1]=contador+1;//vai pra proxima rodada
  43. i++;
  44. } else {
  45. //classifica a segunda variavel perdedor
  46. classificacao[i-1]=contador;
  47. classificacao[i]=contador+1;//vai pra proxima rodada
  48. i++;
  49. }
  50. }
  51.  
  52. contador=2;//Partidas dois se houver entra no while
  53. while(partidas!=1) {
  54. //
  55.  
  56. //para as partidas
  57. i=0;
  58. while(i<N) {
  59. //percorre s o vetor
  60.  
  61.  
  62. while(achar!=1) {
  63. //achar o primeiro
  64. if(classificacao[i]==contador) {
  65. //o primeiro participante
  66. posicao1=i;
  67. total1=(tamanho*contador*rapidez[i])+demora[i];
  68. achar=1;
  69. }
  70. i++;
  71. }
  72. //continuar procurando aprtir do primeiro
  73. while(achar!=2) {
  74. //achar o primeiro
  75. if(classificacao[i]==contador) {
  76. //o primeiro participante
  77.  
  78. total2=(tamanho*contador*rapidez[i])+demora[i];
  79. achar=2;
  80.  
  81. if(total1>total2) {
  82. //
  83. classificacao[i]=contador+1;//vai pra proxima rodada
  84. } else {
  85. //classifica a segunda variavel perdedor
  86. classificacao[posicao1]=contador+1;//vai pra proxima rodada
  87. }
  88. }
  89. i++;
  90. }
  91. }
  92. achar=0;
  93. contador++;//qual partida esta
  94. partidas/=2;//dimuniu as partidas
  95. tamanho*=2;//cada rodada o tamanho da string muda
  96. }
  97.  
  98. for(int i=0; i<N; i++) {
  99.  
  100. if(i==N-1) {
  101. cout<<classificacao[i]<<endl;
  102. } else {
  103. cout<<classificacao[i]<<" ";
  104. }
  105. }
  106. }
  107.  
Success #stdin #stdout 0s 15240KB
stdin
4
4 1
3 1
2 1
1 1
Texto longo
stdout
Tamanho >>>> 11 | Palavra  >>> Texto longo
1 2 3 1