Pagini recente » Cod sursa (job #1805477) | Cod sursa (job #619337) | Cod sursa (job #1573201) | Cod sursa (job #966174) | Cod sursa (job #795031)
Cod sursa(job #795031)
#include<fstream>
#include<iostream>
#include<ctime>
using namespace std;
clock_t start=clock();
ifstream f("balanta.in");
ofstream g("balanta.out");
int N, M;
int sh[1030];
int sl[1030];
int A[1030], B[1030];
void set(int op, int n, int *v, int *a, int *b)
{ int i;
int aux[1030];
if(a)
{ //cout<<"in a op "<<op<<" .... ";
if(op == 0)
{ //cout<<"in\n";
for(i = 1; i <= n; i++)
if(v[a[i]])
v[a[i]] = 0, v[0]--;
}
else
{ //cout<<"in\n";
for(i = 0; i <= N; i++) aux[i] = v[i], v[i] = 0;
v[0] = 0;
for(i = 1; i <= n; i++)
if(aux[a[i]] == 1) v[a[i]] = 1, v[0]++;
}
}
if(b)
{ //cout<<"in a op "<<op<<" .... ";
if(op == 0)
{ //cout<<"in\n";
for(i = 1; i <= n; i++)
if(v[b[i]])
v[b[i]] = 0, v[0]--;
}
else
{ //cout<<"in\n";
for(i = 0; i <= N; i++) aux[i] = v[i], v[i] = 0;
v[0] = 0;
for(i = 1; i <= n; i++)
if(aux[b[i]] == 1) v[b[i]] = 1, v[0]++;
}
}
}
int main()
{ int i, j, k, v;
int ans = 0;
f>>N>>M;
for(i = 1; i <= N; i++) sh[++sh[0]] = sl[++sl[0]] = 1;
for(i = 1; i <= M; i++)
{ f>>k;
for(j = 1; j <= k; j++)
f>>A[j];
for(j = 1; j <= k; j++)
f>>B[j];
f>>v;
if(v == 0)
{ set(0, k, sh, A, B);
set(0, k, sl, A, B);
}
else
{ if(v == 1)
{ set(1, k, sh, A, NULL);
set(1, k, sl, NULL, B);
}
else
{ set(1, k, sh, NULL, B);
set(1, k, sl, A, NULL);
}
}
}
if(sh[0] == 1 && sl[0] == 0)
for(j = 1; j <= N; j++) if(sh[j] == 1) ans = j;
else if(sh[0] == 0 && sl[0] == 1)
for(j = 1; j <= N; j++) if(sl[j] == 1) ans = j;
g<<ans;
cout << 1.0*(clock()-start)/(1.0*CLOCKS_PER_SEC) << '\n';
f.close();
g.close();
return 0;
}