AOJ0168

JOIが近づいてきたのでAOJやろうと思った。

#include<iostream>
using namespace std;

int n;
const int MAX_N = 30;
bool done[MAX_N + 1];
int memo[MAX_N + 1];
int solve(int n){
	if(n == 0) return 1;
	if(n == 1) return 1;
	if(n == 2) return 2;
	if(done[n]) return memo[n];
	done[n] = true;
	return memo[n] = solve(n - 1) + solve(n - 2) + solve(n - 3);
}

int main(){
	while(cin >> n, n){
		int ans = 0;
		ans = solve(n) / 3650;
		if(solve(n) % 3650) ans++;
		cout << ans << endl;
	}
	return 0;
}