/* ID: mytbk921 LANG: C TASK: ariprog */ #include #include #include int cmp(const void* a, const void* b) { return *(int*)a - *(int*)b; } int main() { FILE *fin, *fout; int n,m,setSize,i,j,diff,step,maxdiff,count=0; int myset[251*251]; fin = fopen("ariprog.in", "r"); fout = fopen("ariprog.out", "w"); fscanf(fin, "%d%d", &n, &m); fclose(fin); setSize = 0; for (i=0; i<=m; i++){ myset[i] = i*i; } setSize = m+1; for (i=1; i<=m; i++){ for (j=i; j<=m; j++){ myset[setSize] = myset[i]+myset[j]; setSize++; } } qsort(myset, setSize, sizeof(myset[0]), cmp); maxdiff = myset[setSize-1]/(n-1); if (n>=6){ step = 12; }else if (n>=4){ step = 4; }else{ step = 1; } for (diff=step; diff<=maxdiff; diff+=step){ for (i=0; i0 && myset[i]==myset[i-1]){ continue; } int curr = myset[i]; for (j=1; j