请求加强数据
查看原帖
请求加强数据
366254
dxy2020楼主2022/10/5 21:24

rt,O(mn)O(mn) 跑满了才 2e82e8,暴力完全能过

就我这么逊的代码开吸氧也能跑过

#include <bits/stdc++.h>
using namespace std;
inline void in (int &x){
    x=0;char c=getchar();
    while (c<'0'||c>'9') c=getchar();
    while (c>='0'&&c<='9') x=(x<<3)+(x<<1)+(c^48),c=getchar();
}
inline void out (int x){
	if (x<0){putchar ('-');x=-x;}
	char s[25];int n=0;
	while (x||!n){s[n++]='0'+x%10;x/=10;}
	while (n--){putchar (s[n]);}puts ("");
}
int n,m,i,l,r,x,a[40005],b[40005],T[40005],maxx;
signed main (){
	in (n);in (m);
	for (i=1;i<=n;++i)
		in (a[i]),b[i]=a[i];
	sort (b+1,b+1+n);
	int cnt=unique (b+1,b+1+n)-b-1;
	for (i=1;i<=n;++i)
		a[i]=lower_bound (b+1,b+1+cnt,a[i])-b;
	while (m--){
		in (l);in (r);
		l=(l+b[x]-1)%n+1;r=(r+b[x]-1)%n+1;
		if (l>r) l^=r^=l^=r;
		for (i=l;i<=r-5;i+=6)
			++T[a[i]],++T[a[i+1]],++T[a[i+2]],++T[a[i+3]],++T[a[i+4]],++T[a[i+5]];
		while (i<=r) ++T[a[i++]];
		for (i=1;i<=cnt;++i)
			maxx<T[i]?maxx=T[i],x=i:1;
		out (b[x]);maxx=0;
		for (i=l;i<=r-5;i+=6) 
			T[a[i]]=T[a[i+1]]=T[a[i+2]]=T[a[i+3]]=T[a[i+4]]=T[a[i+5]]=0;
		while (i<=r) T[a[i++]]=0;
	}
	return 0;
}

2022/10/5 21:24
加载中...