Le schéma de partage de secrets de Shamir est un moyen simple de protéger un secret en le divisant en plusieurs parties nécessaires à sa reconstruction.
Votre tâche consiste à mettre en œuvre la reconstruction du partage secret de Shamir sur le champ fini défini par le premier 1928049029
. Si vous avez des doutes sur ce que cela signifie, il suffit de demander ou de voir Finith Field & Finite Field Arithmetic dans wikipedia (plus de ressources ci-dessous).
Contribution
L'entrée se fait à l'aide de stdin. Vient d'abord un entier k
, puis k lignes suivent. Chacune de ces lignes contient une paire d'entiers x y
qui représentent un secret. En d'autres termes, f(x) = y
dans le polynôme original qui a été utilisé pour construire les secrets.
Le nombre de secrets donnés est toujours suffisant pour construire le secret correspondant.
Production
Sortie pour sortir le secret reconstruit.
Exemples
Contribution:
5
1 564797566
2 804114535
4 1354242660
6 1818201132
7 503769263
Production:
1234
Contribution:
7
1 819016192
2 1888749673
3 1737609270
4 365594983
5 1628804870
6 1671140873
7 492602992
Production:
456457856
Ressources
Champ fini Source: Wikipedia
Arithmétique des champs finis Source: Wikipedia
Polynôme de Lagrange Source: Wikipedia