求D题的代码我的为什么超时了啊啊啊啊啊啊

有D的代码吗?我的为什么超时了啊啊啊啊啊啊

#include <iostream>

#include <vector>

using namespace std;

int main()

{

int n,ff=0;

cin>>n;

if(n==1)

{

cin>>n;

if(n==1) cout<<1;

else cout<<-1;

return 0;

}

vector<int> vec(n),vec1(n,0),vec2(n,0);

for(int i=0;i<n;i++)

{

cin>>vec[i];

if(i!=0)

{

if(vec[i-1]<vec[i]||vec[0]%vec[i]!=0) ff=-1;

}

}

if(ff==-1)

{

cout<<-1;return 0;

}

vec1[0]=vec[0];

vec2[vec[0]-1]=1;

for(int i=1;i<n;i++)

{

int tt=0;

for(int j=vec[i];j<=n;j+=vec[i])

{

if(vec2[j-1]==0&&j%vec[i]==0)

{

vec2[j-1]=1;

vec1[i]=j;tt=1;break;

}

else continue;

}

if(tt==0) {ff=-1;break;}

}

if(ff==-1){cout<<-1;return 0;}

else{

for(int i=0;i<n;i++)

{

cout<<vec1[i];

if(i!=n-1) cout<<" ";

}

}

return 0;

}

全部评论
输入全为2,你的算***是O(n ^ 2)的
点赞 回复 分享
发布于 2024-05-25 13:40 江苏

相关推荐

码农索隆:你告诉他,你看他也一般
点赞 评论 收藏
分享
吴offer选手:下午mt一来就告警说项目来不及,估计明天拿了权限就要参与开发了 已老实
实习生的蛐蛐区
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务