Pagini recente » Cod sursa (job #1115816) | Cod sursa (job #583331) | Cod sursa (job #1352772) | Cod sursa (job #623056) | Cod sursa (job #25387)
Cod sursa(job #25387)
#include <stdio.h>
#define nm 1111
int n, m, i, j, k, rez, sol, x, px;
int s[nm], a[nm], b[nm], s1[nm][nm];
void read()
{
scanf("%d %d", &n, &m);
}
void solve()
{
for (i=1; i<=n; i++)
s[i] = -1;
for (i=1; i<=m; i++)
{
for (j=1; j<=n; j++)
s1[i][j] = s1[i-1][j];
scanf("%d ", &k);
for (j=1; j<=k; j++)
scanf("%d ", &a[j]);
for (j=1; j<=k; j++)
scanf("%d ", &b[j]);
scanf("%d ", &rez);
// printf("rez %d\n", rez);
if (rez == 0)
{
for (j=1; j<=k; j++)
{
s[a[j]] = 0;
s1[i][a[j]] = 0;
s[b[j]] = 0;
s1[i][b[j]] = 0;
}
}
else
if (rez == 1)
{
for (j=1; j<=k; j++)
{
if (s[a[j]] != 0)
{
s[a[j]] = 2;
s1[i][a[j]] = 2;
}
if (s[b[j]] != 0)
{
s[b[j]] = 1;
s1[i][b[j]] = 1;
}
}
}
else
{
for (j=1; j<=k; j++)
{
if (s[a[j]] != 0)
{
s[a[j]] = 1;
s1[i][a[j]] = 1;
}
if (s[b[j]] != 0)
{
s[b[j]] = 2;
s1[i][b[j]] = 2;
}
}
}
}
}
void write()
{
freopen("balanta.in", "r", stdin);
sol = 0;
// for (i=1; i<=n; i++)
// printf("%d ", s1[3][i]);
// printf("\n");
scanf("%d %d", &n, &m);
for (i=1; i<=m; i++)
{
scanf("%d ", &k);
for (j=1; j<=k; j++)
scanf("%d ", &a[j]);
for (j=1; j<=k; j++)
scanf("%d ", &b[j]);
scanf("%d ", &rez);
if (k == 1)
{
x = 0;
if (rez == 1 || rez == 2)
{
//printf("%d %d \n", s[a[1]], s1[m-1][a[1]]);
if (s[a[1]] == s1[m-1][a[1]])
{
x++;
px = a[1];
}
//printf("%d %d \n", s[b[1]], s1[m-1][b[1]]);
if (s[b[1]] == s1[m-1][b[1]])
{
x++;
px = b[1];
}
}
if (x == 1)
sol = px;
}
else
if (rez == 1)
{
x = 0;
for (j=a[1]; j<=a[k]; j++)
if (s[j] != rez && s[j] != 0)
{
if (s1[m-1][j] != s[j])
{
x++;
px = j;
}
}
//if (x == 1)
// sol = px;
// printf("ssol %d ", sol);
//x = 0;
for (j=b[1]; j<=b[k]; j++)
if (s[j] == rez && s[j] != 0)
{
if (s1[m-1][j] == s[j])
{
x++;
px = j;
}
}
if (x == 1)
sol = px;
}
else
if (rez == 2)
{
x = 0;
for (j=a[1]; j<=a[k]; j++)
if (s[j] != rez && s[j] != 0)
{
if (s1[m-1][j] == s[j])
{
x++;
px = j;
}
}
//if (x == 1)
// sol = px;
// printf("ssol %d ", sol);
//x = 0;
for (j=b[1]; j<=b[k]; j++)
if (s[j] == rez && s[j] != 0)
{
if (s1[m-1][j] != s[j])
{
x++;
px = j;
}
}
if (x == 1)
sol = px;
}
// printf("sol %d\n", sol);
}
printf("%d\n", sol);
}
int main()
{
freopen("balanta.in", "r", stdin);
freopen("balanta.out","w",stdout);
read();
solve();
write();
fclose(stdin);
fclose(stdout);
return 0;
}