Hackerearth The First Meeting solution
Solve in C++:
#include<bits/stdc++.h>
using namespace std;
#define M 1000010
int ar[M];
int marked[M];
void sieve()
{
for(int i=3; i*i<=M; i+=2)
{
if(marked[i]==0)
{
for(int j=2*i; j<=M; j+=i)
{
marked[j]=1;
}
}
}
for(int i=4; i<=M; i=i+2)
{
marked[i]=-1;
}
marked[1]=-1;
marked[2]=0;
}
main()
{
sieve();
int m;
int s,c,mx,mn;
scanf("%d",&s);
for(int i=0; i<s; i++)
{
cin>>ar[i];
}
mx=0;
int t1=mx;
mn=99999999;
int t2=mn;
for(int i=0; i<s; i++)
{
if(marked[ar[i]]==0)
{
if(ar[i]>mx)
mx=ar[i];
}
}
for(int i=0; i<s; i++)
{
if(marked[ar[i]]==0)
{
if(ar[i]<mn)
mn=ar[i];
}
}
if(mx==t1 || mn==t2)
cout<<"-1"<<endl;
else
cout<<mx-mn<<endl;
}
#include<bits/stdc++.h>
using namespace std;
#define M 1000010
int ar[M];
int marked[M];
void sieve()
{
for(int i=3; i*i<=M; i+=2)
{
if(marked[i]==0)
{
for(int j=2*i; j<=M; j+=i)
{
marked[j]=1;
}
}
}
for(int i=4; i<=M; i=i+2)
{
marked[i]=-1;
}
marked[1]=-1;
marked[2]=0;
}
main()
{
sieve();
int m;
int s,c,mx,mn;
scanf("%d",&s);
for(int i=0; i<s; i++)
{
cin>>ar[i];
}
mx=0;
int t1=mx;
mn=99999999;
int t2=mn;
for(int i=0; i<s; i++)
{
if(marked[ar[i]]==0)
{
if(ar[i]>mx)
mx=ar[i];
}
}
for(int i=0; i<s; i++)
{
if(marked[ar[i]]==0)
{
if(ar[i]<mn)
mn=ar[i];
}
}
if(mx==t1 || mn==t2)
cout<<"-1"<<endl;
else
cout<<mx-mn<<endl;
}
No comments