#include #include using namespace std; const int MAXVALS = 1000; const int NONE = -1; const int SEVERAL = -2; int vals[MAXVALS]; int cvals[10][10][MAXVALS][MAXVALS]; int counts[10][10][MAXVALS][MAXVALS] = {0}; int check(int a, int b, int c, int d1, int d2, int p) { int location = -1; for(int i=p-1; i>= d1+d2; i--) { if (vals[i] == c) { if (vals[i-d2] == b) { if (vals[i-d1-d2] == a) location = i-d1-d2; else return -1; } else if (vals[i-d1-d2] == a) return -1; } } return location; } int main() { int p, targetNum; cin >> p; targetNum = ceil(p/40.0) + 1; for(int i=0; i> vals[i]; } for(int a=0; a<=9; a++) for(int b=0; b<=9; b++) for(int i=0; i= targetNum) { int location = check(a, b, c, diff1, diff2, p); if (location == -1) continue; else if (location < earliestLoc) { found = true; sava = a, savb = b, savc = c, savd1 = diff1, savd2 = diff2; earliestLoc = location; } else if (location == earliestLoc && (diff1 < savd1 || (diff1 == savd1 && diff2 < savd2))) { sava = a, savb = b, savc = c, savd1 = diff1, savd2 = diff2; } } } } } } if (!found) cout << "random sequence" << endl; else cout << "triple correlation " << sava << "(" << savd1 << ")" << savb << "(" << savd2 << ")" << savc << " found" << endl; }