现举报 @傅思维666 有抄袭 @WarningQAQ 题解嫌疑
题目:CF10E
@WarningQAQ题解:
#include "cstdio"
int n, dat[500], res = -1;
int main()
{
scanf("%d", &n);
for (int i = 1; i <= n; i++)
scanf("%d", &dat[i]);
for (int i = 1; i <= n; i++)
for (int j = i + 1; j <= n; j++)
{
int cnt1 = 1, cnt2 = 0, W = dat[i] - 1, t;
for (int k = i + 1; k <= j; k++) //非贪心做法
cnt1 += (W / dat[k]), W %= dat[k];
t = W = dat[i] - 1 - W + dat[j];
for (int k = 1; k <= n; k++) //贪心做法
cnt2 += (W / dat[k]), W %= dat[k];
if (cnt1 < cnt2 && (res == -1 || res > t)) //判断
res = t;
}
printf("%d", res);
return 0;
}
@傅思维666题解:
#include<cstdio>
using namespace std;
int n;
int a[410],ans=-1;
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
for(int i=1;i<=n;i++)
for(int j=i+1;j<=n;j++)
{
int cnt1=1,cnt2=0,yu=a[i]-1,t;
for(int k=i+1;k<=j;k++)
cnt1+=(yu/a[k]),yu%=a[k];
t=yu=a[i]-1-yu+a[j];
for(int k=1;k<=n;k++)
cnt2+=(yu/a[k]),yu%=a[k];
if(cnt1<cnt2 && (ans==-1||ans>t))
ans=t;
}
printf("%d",ans);
return 0;
}
可以看出,两者的代码相似,@傅思维666只是将变量名修改,删去代码空格。