Pagini recente » Cod sursa (job #591691) | Cod sursa (job #918787) | Cod sursa (job #1975629) | Cod sursa (job #1584015) | Cod sursa (job #3211387)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("sortari.in");
ofstream fout("sortari.out");
/**
Orice sir este sortat cu interschimbarile date
daca si numai daca orice sir binar e sortat
cu interschimbarile date.
1 2 3 4
a = 0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
..
1 1 1 1
1 0 0 0 0
*/
int n, m, b[20];
int x[603], y[603];
int PotSorta()
{
int a[20] = {0}, i;
while (a[0] == 0)
{
/// gen next sir binar
for (i = n; a[i] == 1; i--)
a[i] = 0;
a[i] = 1;
for (i = 1; i <= n; i++)
b[i] = a[i];
/// verific daca il pot sorta pe b
for (i = 1; i <= m; i++)
{
if (b[x[i]] > b[y[i]])
swap(b[x[i]], b[y[i]]);
}
for (i = 1; i < m; i++)
if (b[i] > b[i + 1]) return 0;
}
return 1;
}
int main()
{
int T, i;
fin >> T;
while (T--)
{
fin >> n >> m;
for (i = 1; i <= m; i++)
fin >> x[i] >> y[i];
/// generam toate sirurile binare de lungime n
fout << PotSorta() << "\n";
}
return 0;
}