Pagini recente » Cod sursa (job #2526966) | Cod sursa (job #2929957) | Cod sursa (job #742352) | Cod sursa (job #340197) | Cod sursa (job #1512624)
#include <fstream>
#define D 1000002
using namespace std;
ifstream f("album.in");
ofstream g("album.out");
int n,nr,nrm,ok=1;
int x[D],y[D],z[D];
void swp(int &a, int &b)
{
int aux=a;
a=b;
b=aux;
}
void urm()
{
ok=0;
for(int i=1;i<n;++i)
{
if(x[i]!=z[i])
{
swp(x[y[0]],x[i]);
swp(y[0],y[i]);
nr++;
ok=1;
}
}
}
int main()
{ f>>n;
int i;
for(i=0;i<n;++i) f>>x[i]; //x=primul sir
for(i=0;i<n;++i) y[x[i]]=i; //y=inversa
for(i=0;i<n;++i) f>>z[i]; //z=sirul final
while(ok)
{
if(x[y[0]]==z[y[0]]) urm();
else
{
int c1=x[y[z[y[0]]]],c2=x[y[0]];
swp(x[y[z[y[0]]]],x[y[0]]);
swp(y[0],y[y[0]]);
nr++;
}
}
g<<nr;
g.close();f.close();
return 0;
}