一道很简单的贪心的题目
排序然后将数组从大到小扫描一遍
注意求的是总和
然后很奇怪的一点就是一开始我数组开小了
结果过Test 8 的时候不断超时
为啥不是RE?
搞的我以为是方法问题
卡了一个小时
很是纳闷。。。
#include<stdio.h>
#include<string.h>
#include<algorithm>
#define maxn 111111
using namespace std;
//int check(int x,int y)
//{
// if(x==y||x-y==1)
// return 1;
// return 0;
//}
int main()
{
int n,i;
long long j;
int l[maxn];
long long ab[maxn];
long long s;
while(scanf("%d",&n)!=EOF)
{
memset(ab,0,sizeof(ab));
memset(l,0,sizeof(l));
for(i=0;i<n;i++)
scanf("%d",&l[i]);
sort(l,l+n);
j=1;s=0;
for(i=n-1;i>0;i--)
{
if(l[i]==l[i-1]||l[i]-l[i-1]==1)
//ab[j]=l[i];--i;
{
ab[j]=l[i-1];
if(j%2==0)
s+=ab[j-1]*ab[j];
j++;
--i;
}
}
printf("%I64u\n",s);
}
return 0;
}