求助 为什么会全MLE
查看原帖
求助 为什么会全MLE
161798
_LFK_楼主2021/11/22 21:30

RT 我大受震撼

https://www.luogu.com.cn/record/63388236

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#define fox(i,s,e) for(int i=(s);i<=(e);++i)
using namespace std;
const int maxn=10e7+10;
int t,x[200005],nxt[maxn],pre[maxn];
bool c[maxn];
inline bool check(int a){
	while(a>0){
		if(a%10==7)return true;
		a/=10;
	}
	return false;
}
void init(){
	cin>>t;
	fox(i,1,t)cin>>x[i];
	fox(i,1,maxn){
		pre[i]=i-1;
		nxt[i]=i+1;
	}
	fox(i,1,maxn){
		if(c[i])continue;
		if(check(i)){
			for(int j=i;j<=maxn;j+=i){
				if(c[j])continue;
				nxt[pre[j]]=nxt[j];
				pre[nxt[j]]=pre[j];
				c[j]=true;
			}
		}
	}
}
void solve(){
	fox(i,1,t){
		if(c[x[i]]==true){
			cout<<"-1"<<endl;
		}
		else{
			cout<<nxt[x[i]]<<endl;
		}
	}
}
int main(){
	ios::sync_with_stdio(false);
	memset(c,0,sizeof(c));
	init();
	solve();
}

2021/11/22 21:30
加载中...