- 726 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 02:03:49 ]
- >>713
最適解かどうかは不明だけど、実現可能な解 #include<stdio.h> #include<stdlib.h> int max_min(long n) { long i, j; if(n==1) return 0; if(n<=4) return 1; for(i=0;;i++) { for(j=1;j<=i;j++) { if(j*(i-j+1)*(i+1)+j>=n) return i; } } return -1; } int main(int argc, char *argv[]) { int n=1000; if(argc==2) n=atoi(argv[1]); printf("%d\n", max_min(n)); return 0; }
|

|