11385 - Da Vinci Code

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
long long int fib(long long int b)
{
    long long int c,d,e,j,arr1[101];
    c=0;
    d=1;
    for(j=0; j<47; j++)
    {
        e=c+d;
        arr1[j]=e;
        c=d;
        d=e;
    }
    for(j=0; j<47; j++)
    {
        if(arr1[j]==b)
        {
            return j;
        }
    }
    return -1;
}
int main()
{
    char str[101],str1[101],str2[101];
    long long int a,b,t,n,i,j,k,l,m,len;
    long long int arr[101],arr1[101];
    scanf("%lld",&t);
    while(t--)
    {
        memset(str1,' ',sizeof(str1));
        scanf("%lld",&n);
        for(i=0; i<n; i++)
        {
            scanf("%lld",&arr[i]);
        }
        getchar();
        gets(str);
        len=strlen(str);
        l=0;
        for(k=0; k<len; k++)
        {
            if(str[k]>='A'&&str[k]<='Z')
            {
                str2[l++]=str[k];
            }
        }
        str2[l]='\0';
        j=0;
        m=0;
        for(i=0; i<n; i++)
        {
            a=fib(arr[i]);
            arr1[m++]=a;
            if(a!=-1)
            {
                if(str2[j]>='A'&&str2[j]<='Z')
                {
                    str1[a]=str2[j];
                }
            }
            j++;
        }
        sort(arr1,arr1+m);
        b=arr1[m-1];
        str1[b+1]='\0';
        printf("%s\n",str1);
    }
    return 0;
}

0 comments: (+add yours?)