Pagini recente » Cod sursa (job #513239) | Cod sursa (job #1697047) | Cod sursa (job #474084) | Cod sursa (job #2339904) | Cod sursa (job #2364804)
#include <fstream>
using namespace std;
ifstream f("balanta.in");
ofstream g("balanta.out");
int st[1025],dr[1025],us[1025],gr[1025];
int n,k,ii,nrc,s,i,x,rez;
int main()
{
f>>n>>nrc;
for(;nrc--;){
f>>k;
for(i=1;i<=n;i++)
st[i]=dr[i]=0; ///am initializat cu 0 vectorul de frecventa in care tin monedele
for(i=1;i<=k;i++){
f>>x;
st[x]=1; ///bag monedele de pe talerul stang in vector
}
for(i=1;i<=k;i++){
f>>x;
dr[x]=1; ///bag monedele de pe talerul drept in vector
}
f>>rez;
if(rez==0){ ///daca e echilibru
for(i=1;i<=n;i++)
if(st[i]==1||dr[i]==1) ///daca au fost cantarite monedele...
us[i]=gr[i]=1; ///nu pot fi nici usoare, nici grele
}
if(rez==1){ ///daca stangul e mai greu decat dreptul
for(i=1;i<=n;i++){
if(st[i]==1) us[i]=1; ///cele de pe talerul greu nu pot fi usoare
if(dr[i]==1) gr[i]=1; ///cele de pe talerul usor nu pot fi grele
if(dr[i]==0 && st[i] ==0) us[i]=dr[i]=1; ///daca nu au foa cantaritr nu sunt nici gele, nici usoare(cea falsa este in cele cantarite)
}
}
if(rez==2){///daca dreptul e mai greu decat stangul
for(i=1;i<=n;i++){
if(st[i]==1) gr[i]=1; ///cele de pe talerul usor nu pot fi grele
if(dr[i]==1) us[i]=1; ///cele de pe talerul greu nu pot fi usoare
if(dr[i]==0 && st[i] ==0) us[i]=dr[i]=1; ///daca nu au foa cantaritr nu sunt nici gele, nici usoare(cea falsa este in cele cantarite)
}
}
}
for(i=1;i<=n;i++){
if(gr[i]==0){
s++;
ii=i;
}
if(us[i]==0){
s++;
ii=i;
}
} ///sa fie doar o moneda gresita
if(s==1)
g<<ii;
else
g<<0;
return 0;
}