Pagini recente » Cod sursa (job #76525) | Cod sursa (job #2349640) | Cod sursa (job #2947120) | Cod sursa (job #1789723) | Cod sursa (job #3152672)
#include <fstream>
using namespace std;
ifstream cin ("balanta.in");
ofstream cout ("balanta.out");
bool eliminat[2][1025];
int main ()
{
int numar_monede , incercari;
cin >> numar_monede >> incercari;
int ramas = (numar_monede << 1);
for (int eliminare = 1 ; eliminare <= incercari && ramas > 2 ; eliminare++)
{
int lungime;
cin >> lungime;
int multime[1025];
for (int indice = 1 ; indice <= numar_monede ; indice++)
multime[indice] = 0;
for (int indice_1 = 1 , valoare ; indice_1 <= 2 ; indice_1++)
for (int indice_2 = 1 ; indice_2 <= lungime ; indice_2++)
{ cin >> valoare; multime[valoare] = indice_1; }
int sens;
cin >> sens;
switch (sens)
{
case 0:
for (int indice = 1 ; indice <= numar_monede ; indice++)
if (multime[indice])
{
if (!eliminat[0][indice]) { eliminat[0][indice] = true; ramas--; }
if (!eliminat[1][indice]) { eliminat[1][indice] = true; ramas--; }
}
break;
case 1:
for (int indice = 1 ; indice <= numar_monede ; indice++)
{
if (multime[indice] != 1 && !eliminat[0][indice]) { eliminat[0][indice] = true; ramas--; }
if (multime[indice] != 2 && !eliminat[1][indice]) { eliminat[1][indice] = true; ramas--; }
}
break;
case 2:
for (int indice = 1 ; indice <= numar_monede ; indice++)
{
if (multime[indice] != 2 && !eliminat[0][indice]) { eliminat[0][indice] = true; ramas--; }
if (multime[indice] != 1 && !eliminat[1][indice]) { eliminat[1][indice] = true; ramas--; }
}
break;
}
}
if (!ramas)
cout << '0';
else
{
int falsificat = 0;
for (int indice = 1 ; !falsificat ; indice++)
if (!eliminat[0][indice] || !eliminat[1][indice])
{ ramas -= eliminat[0][indice] + eliminat[1][indice] ; falsificat = indice;}
if (!ramas)
cout << falsificat;
else
cout << '0';
}
cout.close(); cin.close();
return 0;
}