您的位置:首页 > 其它

Codeforces 525C:Ilya and Sticks

2015-08-06 09:58 316 查看
一道很简单的贪心的题目

排序然后将数组从大到小扫描一遍

注意求的是总和

然后很奇怪的一点就是一开始我数组开小了

结果过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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: