rt,就是CF1108这题,原来我是这么写的:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
int d[n],em[10001]={0};
for(int i=0;i<=n-1;i++) cin>>d[i];
sort(d,d+n);
cout<<d[n-1]<<" ";
for(int i=0;i<=n-1;i++)
{
if(d[n-1]%d[i]==0&&em[d[i]]==0)
{
em[d[i]]=1;
d[i]=-1;
}
}
sort(d,d+n);
cout<<d[n-1];
return 0;
}
这种写法用时300ms,然后我为了把这个代码个性化,改成了这样:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
int d[n],em[10001]={0};
for(int i=0;i<=n-1;i++) cin>>d[i];
sort(d,d+n);
cout<<d[n-1]<<" ";
for(int i=0;i<=n-1;i++)
{
if(d[n-1]%d[i]==0&&em[d[i]]==0)
{
em[d[i]]=1;
d[i]=-14248;
}
}
sort(d,d+n);
cout<<d[n-1];
return 0;
}
区别在于第16行的-1改成了-14248
这次只用了225ms,然后我就莫名其妙地成为了最优解……
求大佬们解释一下,这是什么情况?