/* zwyggle_scores_na.c
 *
 * scores non atteints au jeu de lettres zwyggle
 * site du jeu : <http://zwyggle.free.fr>
 *
 * ce programme :
 * --------------
 * Jean-Paul Davalan <jpdv@wanadoo.fr>
 * http://perso.wanadoo.fr/jean-paul.davalan/jeux/alpha/zwyggle/index.html
 *
 * compilation :
 * -------------
 * gcc -o zwyggle_scores_na zwyggle_scores_na.c
 *
 * usage :
 * -------
 * zwyggle_scores_na
 *
 * résultat :
 * ----------
 * Scores pairs non atteints :
 *         418 420 424 426 428 430
 * Scores minimum : 72, maximum : 432
 * 
 */

#include <stdio.h>

int lignes[] = {36,26,20,18,14,12,10,8,6},
    val[220],    value[220],  val2[440],
    value2[440], scores[440];

int main() {
  int i, j, k, l, m, n, min, max, s;
  for(i=0;i<9*9*9*9*9*9; i++) {
    s = 0; 
    k = i;
    for(j = 0; j < 6; j++) {
      s += lignes[k%9];
      k /= 9;
    }
    val[s] = 1;
  }
  for(i = 0, n = 0; i < 217; i++)
    if(val[i] == 1) 
      value[n++] = i;
  for(i = 0; i < n; i++)
    for(j = 0; j <= i; j++) 
      val2[value[i]+value[j]] = 1;
  for(i = 0, m = 0; i < 433; i++)
    if(val2[i] == 1) 
      value2[m++] = i;
  for(i= 0, max = 0, min = 1000; i< m; i++) {
    max = (max > value2[i]) ? max : value2[i];
    min = (min < value2[i]) ? min : value2[i];
    scores[value2[i]] = 1;
  }
  printf("Scores pairs non atteints :\n\t");
  for(i=min; i<= max; i += 2)
    if(scores[i] == 0) 
      printf("%d ",i);
  printf("\nScores minimum : %d, maximum : %d\n",min, max);
  return 0;
}

