eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Find the Outlier

Find the Outlier

Professor Abacus has just built a new computing engine for making numerical tables. It was designed to calculate the values of a polynomial function in one variable at several points at a time. With the polynomial function \textbf{f(x)=x^2+2x+1}, for instance, a possible expected calculation result is \textbf{1 (= f(0))}, \textbf{4 (= f(1))}, \textbf{9 (= f(2))}, \textbf{16 (= f(3))}, and \textbf{25 (= f(4))}. It is a pity, however, the engine seemingly has faulty components and exactly one value among those calculated simultaneously is always wrong. With the same polynomial function as above, it can, for instance, output \textbf{1}, \textbf{4}, \textbf{12}, \textbf{16}, and \textbf{25} instead of \textbf{1}, \textbf{4}, \textbf{9}, \textbf{16}, and \textbf{25}. You are requested to help the professor identify the faulty components. As the rst step, you should write a program that scans calculation results of the engine and nds the wrong values. \InputFile The input is a sequence of datasets, each representing a calculation result in the following format. \textbf{d} \textbf{v_0} \textbf{v_1} \textbf{...} \textbf{v_\{d+2\}} Here, \textbf{d} in the rst line is a positive integer that represents the degree of the polynomial, namely, the highest exponent of the variable. For instance, the degree of \textbf{4x^5+3x+0.5} is ve and that of \textbf{2.4x+3.8} is one. \textbf{d} is at most five. The following \textbf{d+3} lines contain the calculation result of \textbf{f(0)}, \textbf{f(1)}, ..., and \textbf{f(d+2)} in this order, where \textbf{f} is the polynomial function. Each of the lines contains a decimal fraction between \textbf{-100.0} and \textbf{100.0}, exclusive. You can assume that the wrong value, which is exactly one of \textbf{f(0)}, \textbf{f(1)}, ..., and \textbf{f(d+2)}, has an error greater than \textbf{1.0}. Since rounding errors are inevitable, the other values may also have errors but they are small and never exceed \textbf{10^\{-6\}}. The end of the input is indicated by a line containing a zero. \OutputFile For each dataset, output \textbf{i} in a line when \textbf{v_i} is wrong.
Ліміт часу 30 секунд
Ліміт використання пам'яті 128 MiB
Вхідні дані #1
2
1.0
4.0
12.0
16.0
25.0
1
-30.5893962764
5.76397083962
39.3853798058
74.3727663177
4
42.4715310246
79.5420238202
28.0282396675
-30.3627807522
-49.8363481393
-25.5101480106
7.58575761381
5
-21.9161699038
-48.469304271
-24.3188578417
-2.35085940324
-9.70239202086
-47.2709510623
-93.5066246072
-82.5073836498
0
Вихідні дані #1
2
1
1
6
Джерело ACM International Collegiate Programming Contest, Asia Regional Contest, Tokyo, 2012-11-18