Pagini recente » Cod sursa (job #2825259) | Cod sursa (job #664059) | Cod sursa (job #83144) | Cod sursa (job #1704656) | Cod sursa (job #3177070)
#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;
for (int eliminare = 1 ; eliminare <= incercari ; 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;
if (!eliminat[1][indice]) eliminat[1][indice] = true;
}
break;
case 1:
for (int indice = 1 ; indice <= numar_monede ; indice++)
{
if (multime[indice] != 1 && !eliminat[0][indice]) eliminat[0][indice] = true;
if (multime[indice] != 2 && !eliminat[1][indice]) eliminat[1][indice] = true;
}
break;
case 2:
for (int indice = 1 ; indice <= numar_monede ; indice++)
{
if (multime[indice] != 2 && !eliminat[0][indice]) eliminat[0][indice] = true;
if (multime[indice] != 1 && !eliminat[1][indice]) eliminat[1][indice] = true;
}
break;
}
}
int falsificat = 0;
for (int indice = 1 ; indice <= numar_monede ; indice++)
if (!eliminat[0][indice] || !eliminat[1][indice])
{
if (falsificat)
{
cout << '0';
cout.close(); cin.close();
return 0;
}
falsificat = indice;
}
cout << falsificat;
cout.close(); cin.close();
return 0;
}