#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{
int n,x,T;
int t = 0;
int arr[10001][12];
memset(arr, 0, sizeof(arr));
scanf("%d", &n);
while (n)
{
if (n == 0)break;
for (int i = 0; i < n; i++)
{
scanf("%d%d",&x,&T);
arr[5 - T][x] = arr[5 - T][x] + 1;
t = max(t, T);
}
for (int i = 5-t; i <= 5; i++)
{
for (int j = i; j <= 10 - i; j++)
{
arr[i][j] = max(arr[i - 1][j - 1],max( arr[i - 1][j], arr[i - 1][j + 1]))+arr[i][j];
}
}
n--;
printf("%d\n",arr[5][5]);
}
return 0;
}
但是wrong answer?什么意思?
说明你这个代码不完善,只适用于部分情况,另外看你这个代码,总感觉会少了第一个值或者最后一个值
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y