Je me lance en proposant un algo trivial et pas optimisé : tu prends chaque point les un après les autres, en commençant en haut à gauche, et en te déplaçant de gauche à droite puis de ligne en ligne. Tu considères ce point (qu'on va appeler point générateur) comme le sommet superieur gauche d'un carré potentiel que tu va agrandir progressivement vers la droite et vers le bas, jusqu'a ce qu'il intercepte un rond (carré de 2 sur 2, puis 3 sur 3...). Et c'est tout. Au cours de tes itérations tu mémorise le point générateur qui a engendré le plus grand carré.
C'est très bête comme algo et il doit y avoir beaucoup mieux, mais tu peux deja faire quelques optimisations simples. Genre si tu a déja rencontré un point générateur qui engendre un carré de coté N, tu sais que ce n'est pas la peine de tester les point qui sont à moins de N points du bord droit ou de la dernière ligne.
Sinon ca devrait être dans la catégorie Algo, pas C.
Message édité par matafan le 02-12-2004 à 04:31:05