http://codeforces.com/gym/102021/attachments
找出n个数里面有没有相邻的斐波那契数,难看懂
#include <iostream>
#include <algorithm>
#include <bits/stdc++.h>
using namespace std;
int zu[100005];
int main()
{
int nn;
cin>>nn;
for(int i=1;i<=nn;i++) cin>>zu[i];
int a=1,b=1;
int zu1[10004];
zu1[1]=1;
zu1[2]=1;
for(int i=3;i<=31;i++)
{
zu1[i]=zu1[i-1]+zu1[i-2];
}
int ii,jj;
int flag,flag1;
for(int i=1;i<=29;i++)
{
int x=i;
flag=1,flag1=1;
for( jj=1;jj<=nn;jj++) if(zu[jj]==zu1[x]) {flag=0;break;}
for( ii=1;ii<=nn;ii++)
{if(ii==jj) continue;
if(zu[ii]==zu1[x+1]) {flag1=0;break;}
}
if(flag1==0&&flag==0)
{
cout<<jj<<" "<<ii<<endl;
break;
}
}
if(flag1==1||flag==1) cout<<"impossible"<<endl;
return 0;
}