Pagini recente » Cod sursa (job #1916861) | Cod sursa (job #1262164) | Cod sursa (job #2127355) | Cod sursa (job #1609283) | Cod sursa (job #1239186)
#include <fstream>
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
ifstream f("biperm.in");
ofstream g("biperm.out");
int aux, cicleleft, cicleright, viz[10001];
vector<int> in[2], vec[10001];
int n, len, compCiclice = 0;
void dfs(int nod) {
viz[nod] = 1;
len++;
for(int i = 0; i < vec[nod].size(); ++i) {
if(!viz[vec[nod][i]])
dfs(vec[nod][i]);
}
}
int main() {
//f >> n;
for(int i = 0; i < n; ++i) {
f >> aux;
in[0].push_back(aux);
}
for(int i = 0; i < n; ++i) {
f >> aux;
in[1].push_back(aux);
}
for(int i = 0; i < n; ++i) {
if(vec[in[0][i]].empty())
cicleleft++;
else
cicleright++;
vec[in[0][i]].push_back(in[1][i]);
vec[in[1][i]].push_back(in[0][i]);
}
for(int i = 0; i < n; ++i) {
if(!viz[i]) {
len = 0;
dfs(i);
if( len > 1 )
compCiclice++;
}
}
//g << (long long) powl(2, compCiclice);
f >> n >> len;
g << n + len;
}