NC229811. Bitwise Or vs LCM
描述
输入描述
第一行包含一个整数 (),代表序列的长度。
第二行包含 个整数 () 。
输出描述
输出两个整数 () 满足 。如果有多组解,你可以输出任意一组;如果无解,输出 。
示例1
输入:
2 1 1
输出:
1 2
示例2
输入:
2 3 4
输出:
-1
说明:
在样例 2 中,,因此无解。C++ 解法, 执行用时: 96ms, 内存消耗: 5080K, 提交时间: 2022-02-17 14:14:14
#include<bits/stdc++.h> using namespace std; const int maxn=1e6+7; int vis[maxn]; int p[maxn]; int n,ma; signed main() { cin>>n; for(int i=1;i<=n;i++){ cin>>p[i]; vis[p[i]]=i; ma=max(ma,p[i]); } for(int i=1;i<=n;i++) { for(int j=p[i];j<=1e6;j+=p[i]) { if(vis[j]&&vis[j]!=i) { cout<<min(vis[j],i)<<" "<<max(vis[j],i)<<endl; return 0; } } } cout<<-1<<endl; }