不明白在某谷上是怎么标到紫的。二分答案或者发现答案就是最大逆序差的一半。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
int read()
{
int x=,f=;char c=getchar();
while (c<''||c>'') {if (c=='-') f=-;c=getchar();}
while (c>=''&&c<='') x=(x<<)+(x<<)+(c^),c=getchar();
return x*f;
}
#define N 5000010
int n,a[N],P,w,x,y,z;
int f(int t){return ((1ll*w*t%P*t%P*t%P+1ll*x*t%P*t%P)%P+(1ll*y*t%P+z)%P)%P;}
bool check(int x)
{
int last=;
for (int i=;i<=n;i++)
if (a[i]>=last) last=max(last,a[i]-x);
else if (last-a[i]>x) return ;
return ;
}
int main()
{
#ifndef ONLINE_JUDGE
freopen("bzoj3613.in","r",stdin);
freopen("bzoj3613.out","w",stdout);
const char LL[]="%I64d\n";
#else
const char LL[]="%lld\n";
#endif
n=read(),w=read(),x=read(),y=read(),z=read(),a[]=read(),P=read();
for (int i=;i<=n;i++)
a[i]=(f(a[i-])+f(a[i-]))%P;
int l=,r=P,ans=;
while (l<=r)
{
int mid=l+r>>;
if (check(mid)) ans=mid,r=mid-;
else l=mid+;
}
cout<<ans;
return ;
}

最新文章

  1. AFNetworking 3.0 源码解读(四)之 AFURLResponseSerialization
  2. 【手把手教你Maven】构建过程
  3. PCB设计中的20H原则
  4. nanoTime对volatile 测试的一种写法
  5. csuoj 1114: 平方根大搜索
  6. Objective-C 之同步请求、异步请求、GET请求、POST请求
  7. 玩转Web之servlet(五)---- 怎样解决servlet的线程安全问题
  8. 关于sass与VScode 一些配置 学习记录
  9. zabbix自动发现华为,H3C交换机
  10. (转)python生态环境简介
  11. 提升SQLite数据插入效率低、速度慢的方法
  12. (转)Springboot日志配置(超详细,推荐)
  13. JAVA仿百度分页
  14. 使用Flask+uwsgi+Nginx部署Flask正式环境
  15. 转: 用 Eclipse 平台进行 C/C++ 开发
  16. Android Activity简介和自定义视图
  17. python_SMTP and POP3
  18. DotNetOpenAuth实践系列
  19. springcloud微服务架构搭建
  20. c++下使用命名管道实现进程间通信

热门文章

  1. day 12 列表字典 补充
  2. sql异常 获取数据失败的原因及解决方案
  3. L018-crond的生产场景经验小节
  4. 获取文件mimes
  5. Maven学习(十六)-----Maven插件
  6. TPO 02 - Desert Formation
  7. [转]50 Tips for Working with Unity (Best Practices)
  8. cinder创建volume的流程-简单梳理
  9. leetcode个人题解——#34 Find First and Last Position of Element in Sorted Array
  10. 搭建Git工作环境