Pagini recente » Cod sursa (job #1088062) | Cod sursa (job #1416778) | ONIS 2014, Runda 2 | Cod sursa (job #1988830) | Cod sursa (job #396666)
Cod sursa(job #396666)
#include <algorithm>
using namespace std;
#define DIM 10005
int v[DIM],a[DIM],b[DIM];
int n,nrt;
int cbin (int val)
{
int st,dr,mij;
for (st=1, dr=n; st<=dr; )
{
mij=(st+dr)/2;
if (v[mij]==val)
return mij;
else if (v[mij]<val)
st=mij+1;
else
dr=mij-1;
}
return mij;
}
void read ()
{
int i,x;
scanf ("%d%d%d",&n,&a[0],&b[0]);
for (i=1; i<=n; ++i)
scanf ("%d",&v[i]);
sort (v+1,v+n+1);
for (i=a[0]; i>=1; --i)
{
scanf ("%d",&x);
a[i]=cbin (x);
}
for (i=b[0]; i>=1; --i)
{
scanf ("%d",&x);
b[i]=cbin (x);
}
}
int cmp (int a[DIM],int b[DIM])
{
int i;
if (a[0]<b[0])
return -1;
if (a[0]>b[0])
return 1;
for (i=a[0]; i>=1; --i)
if (a[i]<b[i])
return -1;
else if (a[i]>b[i])
return 1;
return 0;
}
void inc (int a[DIM])
{
int i;
for (++a[i=1]; a[i]>n; ++i)
{
a[i]-=n;
++a[i+1];
}
if (a[a[0]+1])
++a[0];
}
void solve ()
{
for ( ; cmp (a,b)<0; inc (a))
++nrt;
printf ("%d",nrt-1);
}
int main ()
{
freopen ("nextseq.in","r",stdin);
freopen ("nextseq.out","w",stdout);
read ();
solve ();
return 0;
}