Qualcuno mi potrebbe aiutare per la risoluzione del problema con questo codice mi esce solo una task
#include
using namespace std;
int main()
{
//freopen(“input.txt”,“r”,stdin);
int casi;
cin>>casi;
for(int h=0;h<casi;h++)
{
if(h>0)
cout<<endl;
int N;
cin>>N;
int squadre[N][4];
for(int i=0;i<N;i++)
{
int x;
cin>>x;
squadre[i][2]=x%10;
x/=10;
squadre[i][1]=x%10;
x/=10;
squadre[i][0]=x;
squadre[i][3]=squadre[i][0]*3+squadre[i][2];
}
bool valido = true;
for (int i=1;i<N;i++)
{
if (squadre[i][3]>squadre[i-1][3])
{
valido = false;
break;
}
if (squadre[i][3]==squadre[i-1][3]&&squadre[i][0]>squadre[i - 1][0])
{
valido = false;
break;
}
}
int somma=0;
for(int i=0;i<N;i++)
{
somma=somma+squadre[i][0]+squadre[i][1]+squadre[i][2];
}
if(somma!=N*(N-1)*2)
valido=false;
if (valido==false)
{
cout << "Invalid";
continue;
}
bool unico = true;
if(valido==true)
{
int partite = N * (N - 1)/2;
int temp[partite][5];
int idx = 0;
for (int i = 0; i < N; i++)
{
for (int j = i + 1; j < N; j++)
{
temp[idx][0] = i + 1; // Squadra 1
temp[idx][1] = j + 1; // Squadra 2
temp[idx][2] = 0; // Vittorie Squadra 1
temp[idx][3] = 0; // Pareggi
temp[idx][4] = 0; // Vittorie Squadra 2
idx++;
}
}
for(int i=0;i<partite;i++)
{
int sq1, sq2;
sq1 = temp[i][0];
sq2 = temp[i][1];
int v1, v2, p1, p2;
v1 = squadre[sq1-1][0];
v2 = squadre[sq2-1][0];
p1 = squadre[sq1-1][1];
p2 = squadre[sq2-1][1];
for(int p=0;p<2;p++)
{
if (v1 > v2) {
temp[i][2]++; // Vittoria per Squadra 1
squadre[sq1-1][0]--; // Decrementa vittorie disponibili di Squadra 1
v1--;
}
else if (v2 > v1) {
temp[i][4]++; // Vittoria per Squadra 2
squadre[sq2-1][0]--; // Decrementa vittorie disponibili di Squadra 2
v2--;
}
else if (p1>0&&p2>0)
{
temp[i][3]++; // Pareggio
squadre[sq1-1][1]--; // Decrementa pareggi disponibili di Squadra 1
squadre[sq2-1][1]--; // Decrementa pareggi disponibili di Squadra 2
p1--;
p2--;
}
else
{
temp[i][2]++; // Vittoria per Squadra 1 arbitrario
squadre[sq1-1][0]--; // Decrementa vittorie disponibili di Squadra 1
v1--;
}
}
}
unico=true;
for(int i=0;i<partite;i++)
{
if(temp[i][2]==1||temp[i][3]==1||temp[i][4]==1)
unico=false;
}
if(unico==true)
cout<<"Unique";
else
cout<<"Not unique";
}
}
return 0;