Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
150951 | lrf820215 | 最优分解 | C++ | 解答错误 | 40 | 0 MS | 252 KB | 630 | 2024-06-10 10:04:17 |
#include<bits/stdc++.h> using namespace std; int main() { int j,k,n,count; int index=0,sum=0; int i=2; int a[1000]={0}; a[2]=2; scanf("%d",&n); while(n-sum>=i) { //从2开始,对n进行分解 sum+=i; a[i]=i; i++; index++; } int p=(n-sum)/index; //全部累加 int q=(n-sum)%index; //从后往前,加最后剩余的 for(j=i-1;j>=2;j--) { a[j]+=p; } for(k=i-1;k>i-1-q;k--) { a[k]++; } int max = 1; for(j=2;j<index+2;j++) { max = max * a[j]; } cout<<max<<endl; }