Pagini recente » Cod sursa (job #2256890) | Cod sursa (job #2082641) | Cod sursa (job #1242449) | Cod sursa (job #1188924) | Cod sursa (job #2415161)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("nextseq.in");
ofstream fout("nextseq.out");
const int NMAX = 10005;
int v[NMAX],a[NMAX],b[NMAX],ord[NMAX];
int n,m,p;
void modify(int a[])
{
a[1]++;
if(a[1]!=(n+1)) return;
a[1]=1;
int ind=2;
a[ind]++;
while(a[ind]==(n+1))
{
a[ind]=1;
ind++;
if(ind>a[0]) a[0]++;
a[ind]++;
}
}
bool egale(int a[],int b[])
{
if(a[0]!=b[0]) return false;
for(int i=1;i<=a[0];i++)
if(a[i]!=b[i]) return false;
return true;
}
int main()
{
fin >> n >> m >> p;
int x;
for(int i=1;i<=n;i++)
fin >> v[i];
sort(v+1,v+n+1);
for(int i=1;i<=n;i++)
ord[v[i]]=i;
a[0]=m;
b[0]=p;
for(int i=1;i<=m;i++)
{
fin >> x;
a[m-i+1]=ord[x];
}
for(int j=1;j<=p;j++)
{
fin >> x;
b[p-j+1]=ord[x];
}
int rasp=0;
while(egale(a,b)==false)
{
modify(a);
rasp++;
}
fout << rasp-1;
return 0;
}