Cod sursa(job #2099074)
Utilizator | Data | 3 ianuarie 2018 22:26:40 | |
---|---|---|---|
Problema | Balanta | Scor | 90 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 2.44 kb |
#include <fstream>
using namespace std;
ifstream fin ("balanta.in");
ofstream fout ("balanta.out");
int n,m,i,j,dr[520],st[520],w[1030],k,r,fals,falsm;
int main(){
fin>>n>>m;
//-1 = aur sigur
//0 = neverificat
//1 = mai usor
//2 = mai greu
for(i=1;i<=m;i++){
fin>>k;
for(j=1;j<=k;j++)
fin>>st[j];
for(j=1;j<=k;j++)
fin>>dr[j];
fin>>r;
if(r==0){
for(j=1;j<=k;j++)
w[st[j]]=-1;
for(j=1;j<=k;j++)
w[dr[j]]=-1;
}
if(r==1){
for(j=1;j<=k;j++){
if(w[st[j]]!=-1){
if(w[st[j]]==2){
fals++;
falsm=st[j];
}
if(w[st[j]]==1)
w[st[j]]=-1;
if(w[st[j]]==0)
w[st[j]]=2;
}
}
for(j=1;j<=k;j++){
if(w[dr[j]]!=-1){
if(w[dr[j]]==1){
fals++;
falsm=dr[j];
}
if(w[dr[j]]==2)
w[dr[j]]=-1;
if(w[dr[j]]==0)
w[dr[j]]=1;
}
}
if(fals==1){
fout<<falsm;
return 0;
}
else
fals=0;
}
if(r==2){
for(j=1;j<=k;j++){
if(w[st[j]]!=-1){
if(w[st[j]]==1){
fals++;
falsm=st[j];
}
if(w[st[j]]==2)
w[st[j]]=-1;
if(w[st[j]]==0)
w[st[j]]=1;
}
}
for(j=1;j<=k;j++){
if(w[dr[j]]!=-1){
if(w[dr[j]]==2){
fals++;
falsm=dr[j];
}
if(w[dr[j]]==1)
w[dr[j]]=-1;
if(w[dr[j]]==0)
w[dr[j]]=2;
}
}
if(fals==1){
fout<<falsm;
return 0;
}
else
fals=0;
}
}
fout<<"0";
return 0;
}