#include<stdio.h> int x,y,z,n; int a[500],b[500],c[500]; void input_data() { scanf("%d %d",&x,&y); if (x > y) { z = x;x = y;y = z; } n = y - x + 1; } void get_ans() { memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(c,0,sizeof(c)); int la = 1,lb = 1,lc; a[1] = 1;b[1] = 1; if ( n == 1) { printf("1"); return; } if (n == 2) { printf("1"); return; } for (int i = 3;i <=n;i++) { int l; if (lb > la) l = lb; else l = la; int x = 0; for (int j = 1;j <= l;j++) { c[j] = a[j] + b[j] + x; x = c[j] / 10; c[j] = c[j] % 10; } while (x > 0) { l++; c[l] += x; x = c[l] / 10; c[l] = c[l] % 10; } lc = l; for (int j = 1;j <= lb;j++) a[j] = b[j]; la = lb; for (int j = 1;j <= lc;j++) b[j] = c[j]; lb = lc; } for (int j = lc;j >= 1;j--) printf("%d",c[j]); } int main() { input_data(); get_ans(); return 0; } /************************************************************** Problem: 1368 User: admin Language: C Result: Accepted Time:15 ms Memory:1152 kb ****************************************************************/