Pagini recente » Cod sursa (job #1060746) | Cod sursa (job #943863) | Cod sursa (job #252806) | Cod sursa (job #2686779) | Cod sursa (job #2548540)
#include <fstream>
using namespace std;
ifstream fin("balanta.in");
ofstream fout("balanta.out");
int n, m, i, j, t, nr, x, caz, nrsol, indice;
int usor[1030], greu[1030], sir1[1030], sir2[1030];
int main(){
fin>>n>>m;
for(i=1; i<=n; i++){
usor[i]=1;
greu[i]=1;
}
for(t=1; t<=m; t++){
/// initializez sirurile cu 0
for(i=1; i<=n; i++){
sir1[i]=0;
sir2[i]=0;
}
fin>>nr;
for(i=1; i<=nr; i++){
fin>>x;
sir1[x]=1;
}
for(i=1; i<=nr; i++){
fin>>x;
sir2[x]=1;
}
fin>>caz;
if(caz==0){
/// toate nr din siruri sunt bune
for(i=1; i<=n; i++){
if(sir1[i]==1 || sir2[i]==1){
usor[i]=0;
greu[i]=0;
}
}
}else{
if(caz==1){
/// sir1 mai greu decat sir2
/// daca nu apar in niciunul din cele 2 siruri sunt bune
for(i=1; i<=n; i++){
if(sir1[i]==0 && sir2[i]==0){
usor[i]=0;
greu[i]=0;
}
if(sir1[i]==1){
usor[i]=0;
}
if(sir2[i]==1){
greu[i]=0;
}
}
}else{
/// sir1 mai usor decat sir2
/// daca nu apar in niciunul din cele 2 siruri sunt bune
for(i=1; i<=n; i++){
if(sir1[i]==0 && sir2[i]==0){
usor[i]=0;
greu[i]=0;
}
if(sir1[i]==1){
greu[i]=0;
}
if(sir2[i]==1){
usor[i]=0;
}
}
}
}
}
for(i=1; i<=n; i++){
if(usor[i]==1){
nrsol++;
indice=i;
}
if(greu[i]==1){
nrsol++;
indice=i;
}
}
if(nrsol==1){
/// am gasit rezultatul cu siguranta
fout<<indice;
}else{
fout<<0;
}
}