QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#648375#7434. 冷たい部屋、一人lichenghanRE 0ms0kbC++14917b2024-10-17 18:39:442024-10-17 18:39:45

Judging History

你现在查看的是最新测评结果

  • [2024-10-17 18:39:45]
  • 评测
  • 测评结果:RE
  • 用时:0ms
  • 内存:0kb
  • [2024-10-17 18:39:44]
  • 提交

answer

#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int N=5005;
template<class comp> struct sparse_table{
	static comp _c;
	int st[21][N];
	void init(int n,int* a){
		for(int i=1;i<=n;i++) st[0][i]=a[i];
		for(int j=1;j<=20;j++){
			auto F=st[j],G=st[j-1];
			for(int i=1;i<=n-(1<<j)+1;i++){
				F[i]=min(G[i],G[i+(1<<j>>1)],_c);
			}
		}
	}
	int q(int l,int r){
		int len=__lg(r-l+1);
		return min(st[len][l],st[len][r-(1<<len)+1],_c);
	}
};
sparse_table<less<int>> Tmin;
sparse_table<greater<int>> Tmax;
int n,m;
int a[N],b[N];
int main(){
	ios::sync_with_stdio(false);
	cin>>n>>m;
	for(int i=1;i<=n;i++) cin>>a[i];
	for(int i=1;i<=n;i++) cin>>b[i];
	Tmin.init(n,b); Tmax.init(n,b);
	while(m--){
		int l,r;
		cin>>l>>r;
		int ans=0;
		for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(a[i]==a[j]&&Tmin.q(i,j)>=l&&Tmax.q(i,j)<=r) ans++;
		cout<<ans<<'\n';
	}
}

详细

Test #1:

score: 0
Runtime Error

input:

100 100
4 1 5 1 2 1 7 5 3 7 2 3 6 6 5 3 2 2 4 1 6 5 6 2 2 2 7 6 1 3 6 3 5 6 7 6 1 2 3 3 4 2 1 1 5 4 4 3 6 7 1 1 6 1 5 6 2 3 7 4 2 4 6 7 7 3 5 3 7 2 3 3 5 1 4 7 1 2 2 5 2 2 4 3 4 7 2 7 7 3 7 3 6 6 5 4 5 4 7 6
93 52 12 70 25 36 18 37 27 99 68 40 84 3 76 57 60 19 33 41 92 87 58 13 15 43 28 63 64 59 31 ...

output:


result: