Untitled
unknown
plain_text
a year ago
1.4 kB
4
Indexable
//13690 - Bad Fibonacci's soup
#include <stdio.h>
#include <stdlib.h>
int f(int, int, int, int, int);
int g(int, int, int, int, int);
int ansf[105], ansg[105];
int main(void)
{
int a, b, c, d, n;
for(int i = 0;i<105;i++)
{
ansf[i] = -500;
ansg[i] = -500;
}
scanf("%d %d %d %d %d", &a, &b, &c, &d, &n);
printf("%d %d\n", f(a, b, c, d, n), g(a, b, c, d, n));
return 0;
}
int f(int a, int b, int c, int d, int n)
{
if(n == 0){
ansf[0] = a;
return a;//直接return 就可以了
}
if(n == 1){
ansf[1] = b;
return b;//直接return 就可以了
}
if(ansf[n] != -500)
return ansf[n];
if(n%3 == 0)
ansf[n] = f(a, b, c, d, n-1) + g(a, b, c, d, f(a, b, c, d, n/3)%n);
else
ansf[n] = f(a, b, c, d, n-1) + g(a, b, c, d, n-2);
return ansf[n];
}
int g(int a, int b, int c, int d, int n)
{
if(n == 0){
ansg[0] = c;
return c;//直接return 就可以了
}
if(n == 1){
ansg[1] = d;
return d;//直接return 就可以了
}
if(ansg[n] != -500)
return ansg[n];
if(n%5 == 0)
ansg[n] = g(a, b, c, d, n-1) + f(a, b, c, d, g(a, b, c, d, n/5)%n);
else
ansg[n] = g(a, b, c, d, n-1) + f(a, b, c, d, n-2);
return ansg[n];
}
Editor is loading...
Leave a Comment