Pagini recente » Cod sursa (job #676606) | Cod sursa (job #2537581) | Borderou de evaluare (job #343669) | Cod sursa (job #3272142) | Cod sursa (job #1415815)
#include<fstream>
#include<algorithm>
#include<cstring>
using namespace std;
ifstream fin("nextseq.in");
ofstream fout("nextseq.out");
int f[10005],a[10005],b[10005],n,x,v[10005],i,nr,ok,aux;
void add(){
int k=1,t=0;;
for(i=1;i<=a[0];i++){
a[i]+=k+t;
if(a[i]>n){
t=1;
a[i]=1;
}else{
t=0;
}
k=0;
}
if(t!=0){
a[++a[0]]=1;
}
}
int vf(){
if(a[0]<b[0]){
return 1;
}
for(i=1;i<=b[0];i++){
if(a[i]!=b[i]){
return 1;
}
}
return 0;
}
int main(){
fin>>n>>a[0]>>b[0];
for(i=1;i<=n;i++){
fin>>v[i];
}
sort(v+1,v+n+1);
for(i=1;i<=n;i++){
f[v[i]]=i;
}
for(i=1;i<=a[0];i++){
fin>>x;
a[i]=f[x];
}
for(i=1;i<=a[0]/2;i++){
aux=a[i];
a[i]=a[a[0]-i+1];
a[a[0]-i+1]=aux;
}
for(i=1;i<=b[0];i++){
fin>>x;
b[i]=f[x];
}
for(i=1;i<=b[0]/2;i++){
aux=b[i];
b[i]=b[b[0]-i+1];
b[b[0]-i+1]=aux;
}
ok=1;
while(ok){
add();
nr++;
ok=vf();
}
fout<<nr-1;
return 0;
}