Pagini recente » Cod sursa (job #1547392) | Cod sursa (job #2972144) | Cod sursa (job #1977567) | Cod sursa (job #549366) | Cod sursa (job #948246)
Cod sursa(job #948246)
#include<cstdio>
#include<algorithm>
using namespace std;
int nr,pc,n,m,p,v[1<<14],a[1<<14],b[1<<14],cor[1<<14];
void read()
{
freopen("nextseq.in","r",stdin);
freopen("nextseq.out","w",stdout);
scanf("%d%d%d",&n,&m,&p);
for(int i=1;i<=n;i++)
scanf("%d",&v[i]);
for(int i=1;i<=m;i++)
scanf("%d",&a[m-i+1]);
for(int i=1;i<=p;i++)
scanf("%d",&b[p-i+1]);
}
void norm()
{
sort(v+1,v+n+1);
for(int i=1;i<=n;i++)
cor[v[i]]=i;
for(int i=1;i<=m;i++)
a[i]=cor[a[i]];
for(int i=1;i<=p;i++)
b[i]=cor[b[i]];
}
int maxx(int x,int y)
{
return x>y?x:y;
}
void next()
{
int i,T;
a[1]++;
T=a[1]/(n+1);
if(T)
a[1]=1;
for(i=2;T;i++)
{
a[i]++;
T=a[i]/(n+1);
if(T)
a[i]=1;
}
m=maxx(i-1,m);
}
int main()
{
read();
norm();
pc=p+1;
while(1)
{
next();
if(a[0]<b[0])
{
nr++;
continue;
}
while(pc && a[pc-1]==b[pc-1])
pc--;
if(!pc)
break;
nr++;
}
printf("%d",nr);
return 0;
}