Cod sursa(job #2364839)

Utilizator mihnea.anghelMihnea Anghel mihnea.anghel Data 4 martie 2019 10:59:42
Problema Balanta Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.98 kb
#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]=gr[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]=gr[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;
}