Codeforces 525C:Ilya and Sticks

来源:互联网 发布:数据库的面试题及答案 编辑:程序博客网 时间:2024/05/24 07:19

一道很简单的贪心的题目

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

注意求的是总和

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

结果过Test 8 的时候不断超时

为啥不是RE?

搞的我以为是方法问题

卡了一个小时

很是纳闷。。。


#include<stdio.h>#include<string.h>#include<algorithm>#define maxn 111111using 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;}


0 0
原创粉丝点击