int N; // Počet čísel na vstupu int A[MAX]; // Číslíčka, se kterými hrajeme int H[MAX][MAX]; // Maximální zisk v každém úseku int T[MAX][MAX]; // Vyhrávající tah pro úsek void hamtyhamtyhamty(void) { for (int i=1; i<=N; i++) // Úseky délky 1 H[i][1] = A[i]; for (int l=2; l<=N; l++) // A teď ty delší for (int i=1; i<=N-l+1; i++) { int levy = A[i] - H[i+1][l-1]; int pravy = A[i+l-1] - H[i][l-1]; if (levy > pravy) { T[i][l] = 'L'; H[i][l] = levy; } else { T[i][l] = 'P'; H[i][l] = pravy; } } }