蒟蒻求助
#include<bits/stdc++.h>
#define inf 10000007
using namespace std;
int cansee[2007],n,m,a[1000007],ansa,ansb;
bool issolved(){
for(int i=1;i<=m;i++)
if(!cansee[i])return 0;
return 1;
}
void solve(int l,int r,bool delta){
if(r>n||l>r)return;
if(delta)cansee[a[r]]++;
else cansee[a[l-1]]--;
if(!issolved()){
solve(l,r+1,1);
}
else{
if((r-l)<(ansb-ansa))
ansa=l,ansb=r;
solve(l+1,r,0);
}
}
int main(){
freopen("P1638_8.in", "r", stdin);
//freopen(".out", "w", stdout);
//ios::sync_with_stdio(false);
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)scanf("%d",&a[i]);
ansa=-inf,ansb=inf;
solve(1,1,1);
printf("%d %d",ansa,ansb);
//fclose(stdin);
//fclose(stdout);
return 0;}
咱先不管代码写的对不对,不吸氧就RE是什么鬼
v1.g++ 1.2.cpp -lm -std=c++14 -fsanitize=address,undefined -o 1.2
结果:
SUMMARY: AddressSanitizer: stack-overflow (/mnt/hgfs/Devc++/洛谷深进/1.2+0x4375) in issolved()
==3415==ABORTING
R73252467 记录详情
(洛谷TLE,本地超时+RE)
v2.g++ 1.2.cpp -lm -O2 -std=c++14 -fsanitize=address,undefined -o 1.2
结果:洛谷AC
???
知道写的大概不对但是还是不知道怎么就RE了(以及吸氧通过)