#include #define N 1000 int posl[N]; int n; int main(void) { int i, f_nneg; int x, x2, x3; int xna2, xna3; scanf("%d", &n); for (i = 0; i < n; i++) scanf("%d", posl + i); for (f_nneg = 0; f_nneg < n; f_nneg++) if (posl[f_nneg] >= 0) break; /* Nezaporna cisla. */ for (x = x2 = x3 = f_nneg; x3 < n; x++) { xna2 = posl[x] * posl[x]; xna3 = xna2 * posl[x]; while (x2 < n && xna2 > posl[x2]) x2++; while (x3 < n && xna3 > posl[x3]) x3++; if (xna2 == posl[x2] && xna3 == posl[x3]) goto found; } /* Zaporna cisla. */ for (x = x3 = f_nneg - 1, x2 = f_nneg; x3 >= 0 && x2 < n; x--) { xna2 = posl[x] * posl[x]; xna3 = xna2 * posl[x]; while (x2 < n && xna2 > posl[x2]) x2++; while (x3 >= 0 && xna3 < posl[x3]) x3--; if (xna2 == posl[x2] && xna3 == posl[x3]) goto found; } printf ("Takove x neexistuje.\n"); return 0; found: printf ("Nalezena cisla %d, %d, %d.\n", posl[x], posl[x2], posl[x3]); return 0; }