Salve a tutti,
avrei bisogno di un aiuto per quanto riguarda un esercizio sugli array in c++

Allora lo scopo del mio esercizio è quello di accettare da input i voti di due prove per x concorrenti (x < 20).
poi sommare i voti di ogni concorrente( di entrambe le prove) e vedere chi tra tutti ha la media aritmetica più alta (supponendo nessun parimerito)

il mio programma è questo, ma non funziona, non mi entra nell'ultimo while, oppure mi sbaglia la somma di ""contatore = a1[x] + a2[x];""


#include <iostream>
using namespace std;
int main(){

float a1[20];
float a2[20];
int concorrenti;
cout <<"Quanti conccorreti?(max 20)"<< endl;
cin >> concorrenti;
int a = 0;
int b = 0;
int x = 0;
float contatore = 0;
float contatore_max = 0;
int convinc;
// prima prova

cout <<"Prima prova"<< endl;
while(a < concorrenti)
{
cin >> a1[a];
cout << a1[a] << endl;
a = a + 1;
}


// seconda prova

cout <<"Seconda prova"<< endl;
while(b < concorrenti)
{
cin >> a1[b];
b = b
}




// SVOLGIMENTO


while (x < concorrenti)
{ contatore = a1[x] + a2[x];
if (contatore > contatore_max){
contatore_max = contatore;
convinc = 1+x;
}
x = x+1;
}
cout << convinc << endl;
cout << contatore_max << endl;
system("pause");
return 0;
}

grazie in anticipo