Pagini recente » Cod sursa (job #2362844) | Cod sursa (job #2402271) | Cod sursa (job #1772453) | Cod sursa (job #1736791) | Cod sursa (job #396784)
Cod sursa(job #396784)
# include <fstream>
using namespace std;
int x[10003], n, m, p, a[10003], b[10003], v[10003], sol;
void qsort (int st, int dr)
{
if (st<dr)
{
int i=st, j=dr, d=0, aux;
while (i<j)
{
if (x[i]>x[j])
{
aux=x[i];x[i]=x[j];x[j]=aux;
d=1-d;
}
i+=d;
j-=1-d;
}
qsort (st, i-1);
qsort (i+1, dr);
}
}
void read ()
{
int q;
ifstream fin ("nextseq.in");
fin>>n>>m>>p;
for (int i=1;i<=n;i++)
fin>>x[i];
qsort(1, n);
for (int i=1;i<=n;i++)
v[x[i]]=i;
for (int i=m;i;--i)
fin>>q, a[i]=v[q];
for (int i=p;i;--i)
fin>>q, b[i]=v[q];
}
void creste (int p)
{
if (p==m+1)
a[++m]=1;
else
{
if (a[p]==n)
{
a[p]=1;
creste (p+1);
}
else
a[p]++;
}
}
int cmp ()
{
if (m<p)
return 1;
for (int i=m;i;--i)
if (b[i]>a[i])
return 1;
return 0;
}
void solve ()
{
int gata=0;
while (!gata)
{
creste (1);
if (cmp())
sol++;
else
gata=1;
}
}
int main ()
{
read();
solve ();
ofstream fout ("nextseq.out");
fout<<sol;
return 0;
}