Time Limit: 3000MS   Memory Limit: 524288KB   64bit IO Format: %I64d & %I64u

Submit
Status

Description

Yash has recently learnt about the Fibonacci sequence and is very excited about it. He calls a sequence Fibonacci-ish if

  1. the sequence consists of at least two elements
  2. f0 and
    f1 are arbitrary
  3. fn + 2 = fn + 1 + fn for all
    n ≥ 0.

You are given some sequence of integers a1, a2, ..., an. Your task is rearrange elements of this
sequence in such a way that its longest possible prefix is Fibonacci-ish sequence.

Input

The first line of the input contains a single integer n (2 ≤ n ≤ 1000) — the length of the sequence
ai.

The second line contains n integers
a1, a2, ..., an (|ai| ≤ 109).

Output

Print the length of the longest possible Fibonacci-ish prefix of the given sequence after rearrangement.

Sample Input

Input
3
1 2 -1
Output
3
Input
5
28 35 7 14 21
Output
4

Sample Output

Hint

In the first sample, if we rearrange elements of the sequence as
 - 1, 2, 1, the whole sequence
ai would be Fibonacci-ish.

In the second sample, the optimal way to rearrange elements is ,
,
,
,
28.

Source

刚开始想直接暴力搜索的,可是数据的范围有点大,数组记录无法实现,需要用map,用map的时候要去重

#include<cstdio>
#include<cstring>
#include<map>
#include<algorithm>
using namespace std;
map<int,int>fp;
int a[1010];
int f(int a,int b)
{
int ans=0;
if(fp[a+b])
{
fp[a+b]--;
ans=f(b,a+b)+1;
fp[a+b]++;
}
return ans;
}
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
fp.clear();
for(int i=0;i<n;i++)
scanf("%d",&a[i]),fp[a[i]]++;
sort(a,a+n);
int N=unique(a,a+n)-a;
int ans=0;
for(int i=0;i<N;i++)
{
for(int j=0;j<N;j++)
{
if(i==j&&fp[a[i]]==1) continue;
fp[a[i]]--,fp[a[j]]--;
ans=max(ans,f(a[i],a[j])+2);
fp[a[i]]++,fp[a[j]]++;
}
}
printf("%d\n",ans);
}
return 0;
}

Codeforces--633D--Fibonacci-ish(暴力搜索+去重)(map)的更多相关文章

  1. ACM 暴力搜索题 题目整理

    UVa 129 Krypton Factor 注意输出格式,比较坑爹. 每次要进行处理去掉容易的串,统计困难串的个数. #include<iostream> #include<vec ...

  2. Codeforces Gym 100431B Binary Search 搜索+组合数学+高精度

    原题链接:http://codeforces.com/gym/100431/attachments/download/2421/20092010-winter-petrozavodsk-camp-an ...

  3. HDU 3131 One…Two…Five! (暴力搜索)

    题目链接:pid=3131">HDU 3131 One-Two-Five! (暴力搜索) 题意:给出一串数字,要求用加,减,乘,除(5/2=2)连接(计算无优先级:5+3*6=8*6= ...

  4. POJ 1129:Channel Allocation 四色定理+暴力搜索

    Channel Allocation Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 13357   Accepted: 68 ...

  5. 「状压DP」「暴力搜索」排列perm

    「状压DP」「暴力搜索」排列 题目描述: 题目描述 给一个数字串 s 和正整数 d, 统计 sss 有多少种不同的排列能被 d 整除(可以有前导 0).例如 123434 有 90 种排列能被 2 整 ...

  6. hdu 4740 The Donkey of Gui Zhou(暴力搜索)

    题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4740 [题意]: 森林里有一只驴和一只老虎,驴和老虎互相从来都没有见过,各自自己走过的地方不能走第二次 ...

  7. hdu 1427 速算24点 dfs暴力搜索

    速算24点 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Problem De ...

  8. UVALive 5844 dfs暴力搜索

    题目链接:UVAive 5844 Leet DES:大意是给出两个字符串.第一个字符串里的字符可以由1-k个字符代替.问这两个字符串是不是相等.因为1<=k<=3.而且第一个字符串长度小于 ...

  9. 随手练——洛谷-P1151(枚举与暴力搜索)

    枚举 #include <iostream> using namespace std; int main() { ; cin >> k; ; i < ; i++) { ) ...

随机推荐

  1. 如何防止SQL注入式攻击

    一.什么是SQL注入式攻击?  所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令.在某些表单中,用户输入的内容直接用来构造(或 ...

  2. JS——选择水果

    注意点: 1.select标签size属性显示选项数组,multiple属性可以多选 2.原select节点下的子节点在移动到其他selec标签下的时候,其原来的select标签下子节点长度在发生变化 ...

  3. JS——try catch throw

    本例检测输入变量的值.如果值是错误的,会抛出一个异常(错误).catch 会捕捉到这个错误,并显示一段自定义的错误消息: <script> function myFunction() { ...

  4. C# 字符串到字节数组,字节数组转整型

    ; , ); byte[] bytes = BitConverter.GetBytes(num);//将int32转换为字节数组 num = BitConverter.ToInt32(bytes, ) ...

  5. CentOS安装Nodejs-v8.11.1

    (1)到NodeJs官网(https://nodejs.org/en/download/),复制下载链接 (2)下载并解压 命令:wget https://nodejs.org/dist/v8.11. ...

  6. Android—修改button属性

    一般安卓里的普通按钮控件灰灰的,比较单调,我们可以给按钮加上背景图片,或者自定义按钮的圆角,颜色等属性. 下面用代码举例: <Button android:id="@+id/reset ...

  7. win10安装mysql 8.0.11

    mysql安装包可到官网下载,地址:https://dev.mysql.com/downloads/mysql 1.首先解压文件包,我这解压到E:\install_work\mysql目录下: 2.发 ...

  8. C/C++ 中野指针产生的问题

    野指针产生的问题: 野指针的定义: > 野指针是指:指向一个已删除的对象或未申请访问受限内存区域的指针.与空指针不同,野指针无法通过简单地判断是否为NULL避免,而只能通过养成良好的编程习惯来尽 ...

  9. UVALive 3026(KMP算法)

    UVALive 3026     KMP中next[]数组的应用: 题意:给出一个字符串,问该字符串每个前缀首字母的位置和该前缀的周期. 思路:裸KMP直接上就是了: 设该字符串为str,str字符串 ...

  10. Django——3 模板路径 模板变量 常用过滤器 静态文件的使用

    Django 模板路径 模板变量 过滤器 静态文件的加载 模板的路径,有两种方法来使用 设置一个总的templates在大项目外面,然后在sittings的TEMPLATES中声明 在每一个APP中创 ...