Well, this is a classification of players from a two-by-two match, where you sort the match you stopped at.
#include<iostream>
using namespace std;
int main()
{
int N,Ri,Ei,partidas,tamanho,contador,posicao1,i,achar,total1,total2;
string palavra;
cin>>N;
partidas=N/2;
achar=0;
int demora[N+5],classificacao[N+5],rapidez[N+5],total[N+5];
contador=0;
while(contador<N)
{//Lê a quantidade de jogadores
cin>>Ri>>Ei;
demora[contador]=Ri;
rapidez[contador]=Ei;
classificacao[contador]=0;
contador++;
}
cin.ignore();
getline(cin,palavra);
//cout<<palavra<<" esse é o tamnho"<<endl;
tamanho=palavra.length();
contador=1;//partida de numero 1
total[0]=(rapidez[0]*tamanho)+demora[0];
for(i=1;i<N;i++)
{//vai me cada vetor e classifica os jogadores
total[i]=(rapidez[i]*tamanho)+demora[i];
if(total[i]>total[i-1])
{//classifica primeira variavel perdedor
classificacao[i]=contador;
classificacao[i-1]=contador+1;//vai pra proxima rodada
i++;
}
else
{//classifica a segunda variavel perdedor
classificacao[i-1]=contador;
classificacao[i]=contador+1;//vai pra proxima rodada
i++;
}
}
contador=2;//Partidas dois se houver entra no while
while(partidas!=1)
{//
//para as partidas
i=0;
while(i<N)
{//percorre s o vetor
while(achar!=1)
{//achar o primeiro
if(classificacao[i]==contador)
{//o primeiro participante
posicao1=i;
total1=(tamanho*contador*rapidez[i])+demora[i];
achar=1;
}
i++;
}
//continuar procurando aprtir do primeiro
while(achar!=2)
{//achar o primeiro
if(classificacao[i]==contador)
{//o primeiro participante
total2=(tamanho*contador*rapidez[i])+demora[i];
achar=2;
if(total1>total2)
{//
classificacao[i]=contador+1;//vai pra proxima rodada
}
else
{//classifica a segunda variavel perdedor
classificacao[posicao1]=contador+1;//vai pra proxima rodada
}
}
i++;
}
}
achar=0;
contador++;//qual partida esta
partidas/=2;//dimuniu as partidas
tamanho*=2;//cada rodada o tamanho da string muda
}
for(int i=0;i<N;i++)
{
if(i==N-1)
{
cout<<classificacao[i]<<endl;
}
else
{
cout<<classificacao[i]<<" ";
}
}
}
Sample input that should be:
4
4 1
3 1
2 1
1 1
ABCD
Sometimes it prints normal, but does not consider the length of the string other times than the runtime error.