#include "bigloop.h"
#include <stdlib.h>
#include <unistd.h>
#include <time.h>

#define PHI 1.6180339887498948482045868343656381177

ullong wkf;


int lookforeac(ullong k, int eacmax)
{
    long long g = k / PHI;
    int eaclength;
    long long eac[3];
    while (g < k) {
	eac[0] = k;
	eac[1] = g;
	eac[2] = k - g;
	eaclength = 1;
	while ((eaclength <= eacmax) && (eac[0] != eac[1])) {
	    wkf++;
	    if (eac[1] > eac[2]) {
		eac[0] = eac[1];
		eac[1] = eac[2];
	    } else
		eac[0] = eac[2];
	    eac[2] = eac[0] - eac[1];
	    eaclength++;
	}
	if (eac[0] == 1) {
	    return 1;
	}
	g++;
    }
    return 0;
}


int main(int argc, char *argv[])
{
    ullong s;

    int bit = 0;
    int eacmax, score;
    if (!bigloopargs(argc, argv))
	exit(1);

    initbigloop();
    /*
        hummm
	if (!checkavg())
	return 1;
    */   
    if (biglregister())
	while (getbigljob()) {
	    wkf = 0;
	    score  = current.scr;
            eacmax = score;
	    s = first;
	    while (s < last) {
		while (!lookforeac(s, eacmax))
		    eacmax++;
		s++;
	    }
	    if (score < eacmax) {
		score = eacmax;
		sendscore(score);
	    }
	    closeloop(wkf);
	    sendend();
	}

    return 0;
}
