Schemat dzielenia się sekretami Shamira to prosty sposób ochrony tajemnicy poprzez podzielenie jej na kilka części potrzebnych do jej odtworzenia.
Twoim zadaniem jest wdrożenie rekonstrukcji Shamir's Secret Sharing na polu skończonym określonym przez liczbę pierwszą 1928049029
. Jeśli masz wątpliwości co do tego, co to oznacza, po prostu zapytaj lub zobacz Arytmetykę pola skończonego i pola skończonej w Wikipedii (więcej zasobów poniżej).
Wejście
Wprowadzanie odbywa się za pomocą stdin. Najpierw jest liczba całkowita k
, a następnie k linii. Każda z tych linii zawiera parę liczb całkowitych x y
reprezentujących sekret. Innymi słowy f(x) = y
w oryginalnym wielomianu, który był używany do konstruowania sekretów.
Podana liczba sekretów jest zawsze wystarczająca, aby skonstruować odpowiedni sekret.
Wynik
Wyjście na standardowe wyjście zrekonstruowanego sekretu.
Przykłady
Wejście:
5
1 564797566
2 804114535
4 1354242660
6 1818201132
7 503769263
Wynik:
1234
Wejście:
7
1 819016192
2 1888749673
3 1737609270
4 365594983
5 1628804870
6 1671140873
7 492602992
Wynik:
456457856
Zasoby
Pole skończone Źródło: Wikipedia
Arytmetyka pola skończonego Źródło: Wikipedia
Wielomian Lagrange'a Źródło: Wikipedia