所有数据都用longlongint才过,之前错了13次
#include<stdio.h>
int main()
{
long long int ans,cas,i,j,t,m[50],n[50],g1;
m[1]=0;m[2]=1;
n[1]=1;n[2]=1;
for(i=3;i<35;i++)
{
m[i]=m[i-1]+m[i-2];
n[i]=n[i-1]+n[i-2];
}
scanf("%d",&cas);
while(cas--)
{
scanf("%lld%lld%lld",&i,&t,&j);
g1=t-m[i];
if(g1>0&&g1%n[i]==0&&(g1-n[i])>=0)
{
g1/=n[i];
ans=m[j]+g1*n[j];
printf("%lld\n",ans);
}
else printf("-1\n");
}
return 0;
}