#include"lib.h" int mot[MAX], i, j, s, k, size, x, pos, a_o, mmx = 1; uint64_t cc = 0; char mode[20], name[20]; fc fo; FILE *out; int A(){ printf("mode=%s", mode); date(""); for(*mot = i = 0; ;) if(!fo(mot, i) || !lex(mot, i)){ while(mot[i] == a_o-1) if(!i--) return 0; mot[i]++; }else{ cc++; mot[++i] = 0; if((i > mmx) && (mmx = i) && !(i%1000)){ printf("mode=%s mmx=%d cc=%lld", mode, mmx, cc); date(""); sprintf(name, "%s.txt", mode); out = fopen(name, "wt"); fprintf(out, "i=%d mode=%s cc=%lld\n", i, mode, cc); for(i = 0; i < mmx; i++) fprintf(out, "%d%s", mot[i], i%100 == 99 ? "\n" : ""); fclose(out);//*/ } } return 1; } void usage(){ printf("Usage:try fo\n"); exit(0); } int main(int ac, char **av){ if(ac < 2) usage(); sprintf(mode, "%s", av[1]); if(!strcmp(mode, "aabaacbaab")) { a_o = 2; fo = aabaacbaab; } else if(!strcmp(mode, "aabaccb")) { a_o = 2; fo = aabaccb; } else if(!strcmp(mode, "aabba")) { a_o = 2; fo = aabba; } else if(!strcmp(mode, "aabbcabba")) { a_o = 2; fo = aabbcabba; } else if(!strcmp(mode, "aabbcac")) { a_o = 2; fo = aabbcac; } else if(!strcmp(mode, "aabbcbc")) { a_o = 2; fo = aabbcbc; } else if(!strcmp(mode, "aabbcc")) { a_o = 2; fo = aabbcc; } else if(!strcmp(mode, "aabcbc")) { a_o = 2; fo = aabcbc; } else if(!strcmp(mode, "aabccab")) { a_o = 2; fo = aabccab; } else if(!strcmp(mode, "aabccba")) { a_o = 2; fo = aabccba; } else if(!strcmp(mode, "abaab")) { a_o = 2; fo = abaab; } else if(!strcmp(mode, "abaacbc")) { a_o = 2; fo = abaacbc; } else if(!strcmp(mode, "abaaccb")) { a_o = 2; fo = abaaccb; } else if(!strcmp(mode, "abacacb")) { a_o = 2; fo = abacacb; } else if(!strcmp(mode, "abacbc")) { a_o = 2; fo = abacbc; } else if(!strcmp(mode, "abaccab")) { a_o = 2; fo = abaccab; } else if(!strcmp(mode, "abaccba")) { a_o = 2; fo = abaccba; } else if(!strcmp(mode, "abbacca")) { a_o = 2; fo = abbacca; } else if(!strcmp(mode, "abbaccb")) { a_o = 2; fo = abbaccb; } else if(!strcmp(mode, "abbcacb")) { a_o = 2; fo = abbcacb; } else if(!strcmp(mode, "abbcbac")) { a_o = 2; fo = abbcbac; } else if(!strcmp(mode, "abbcbca")) { a_o = 2; fo = abbcbca; } else if(!strcmp(mode, "abbccab")) { a_o = 2; fo = abbccab; } else if(!strcmp(mode, "abcaacb")) { a_o = 2; fo = abcaacb; } else if(!strcmp(mode, "abcacab")) { a_o = 2; fo = abcacab; } else if(!strcmp(mode, "abcacb")) { a_o = 2; fo = abcacb; } else if(!strcmp(mode, "abcbbac")) { a_o = 2; fo = abcbbac; } else if(!strcmp(mode, "fs")) { a_o = 2; fo = fs; } else if(!strcmp(mode, "sim3")) { a_o = 2; fo = sim3; } else if(!strcmp(mode, "sim4")) { a_o = 2; fo = sim4; } else if(!strcmp(mode, "sim7")) { a_o = 2; fo = sim7; } else if(!strcmp(mode, "grt23")) { a_o = 2; fo = grt23; } else if(!strcmp(mode, "grt24")) { a_o = 2; fo = grt24; } else if(!strcmp(mode, "grt25")) { a_o = 2; fo = grt25; } else if(!strcmp(mode, "grt26")) { a_o = 2; fo = grt26; } else if(!strcmp(mode, "grt27")) { a_o = 2; fo = grt27; } else if(!strcmp(mode, "grt32")) { a_o = 3; fo = grt32; } else if(!strcmp(mode, "grt33")) { a_o = 3; fo = grt33; } else if(!strcmp(mode, "grt34")) { a_o = 3; fo = grt34; } else if(!strcmp(mode, "grt38")) { a_o = 3; fo = grt38; } else if(!strcmp(mode, "grt42")) { a_o = 4; fo = grt42; } else if(!strcmp(mode, "grt27")) { a_o = 2; fo = grt27; } else if(!strcmp(mode, "grt72")) { a_o = 7; fo = grt72; } else if(!strcmp(mode, "rt3p")) { a_o = 3; fo = rt3p; } else if(!strcmp(mode, "conjecture")) { a_o = 3; fo = conjecture; } else usage(); if(A()) printf("OK"); else printf("FAILED cc=%lld mmx=%d", cc, mmx); date(""); }