sicily 1137

呵呵。。我当时看了就想用分治来做(类似归并排序),但是归并的时候想不到怎么处理,感觉如果真要处理就跟我下面的代码一样,下面的代码是看了ac的人数直接写的。。

#include <iostream> #include <cmath> using namespace std; int k; int data[30000]; int n; int main() { while(cin >> n >> k) { for(int i = 0; i < n; i++) cin >> data[i]; int _max = 0; for(int i = 0; i < n; i++) { int maxone = data[i], minone = data[i]; int j = i + 1; for(; j < n; j++) { if(data[j] > maxone) maxone = data[j]; if(data[j] < minone) minone = data[j]; if(maxone - minone > k) break; } _max = max(_max, j - i); if(_max >= n - i) break; } cout << _max << endl; } return 0; }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值