通过了40%的测试用例是怎么回事?找不到错误呀

#include <iostream>
using namespace std;
int main() {
	long long a, b, c, m;
	cin >> a >> b >> c >> m;
	long long k;
	cin >> k;
	long long r[100000];
	r[0] = 1;//初始状态,只有0岁的兔子1对
	for (long long i = 1; i <= m; i++) {
		long long newborner = 0;//每个月的新生儿初始化为0
		for (long long j = i; j > 0; j--) {
			r[j] = r[j - 1];//这个月j岁的兔子数量等于上个月j-1岁的兔子数量
			if (j == 1) newborner += r[j] * a;//1岁的兔子每对a个新生儿,共r[j]*a个
			else if (j == 2) newborner += r[j] * b;//2岁的兔子每对b个新生儿
			else if (j >= 3) newborner += r[j] * c;
		}
		r[0] = newborner;//0岁新生儿的数量就是上面的所有新生儿数量相加
	}
	long long sum = 0;
	for (long long i = 0; i <= m; i++) {
		sum += r[i];//求兔子的数量和
	}
	cout << sum <<endl;
    cout << (k-1)/sum+1 << endl;//最开始的每1只兔子m个月后会变成sum只,
                                //想要m个月后至少有k只最开始就应该有ceil(k/sum)只
	return 0;
}


想知道另外的60%的测试数据为什么没有通过。按理来讲通过40%的数据,算法应该是没有错的吧。那为啥剩下的没通过呢?
示例的测试数据我通过了
求大神解答。感激不尽。😭
全部评论
因该把r数组开大点
点赞 回复 分享
发布于 2020-05-08 14:37

相关推荐

点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务