Cod sursa(job #2547975)

Utilizator mihnea03Ciocioiu Mihnea mihnea03 Data 15 februarie 2020 22:14:03
Problema Balanta Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.41 kb
#include <fstream>
#define dim 1030
using namespace std;
int st[dim];
int dr[dim];
int us[dim];
int gr[dim];
int i,n,m,q,s,sol,moneda,x;

int main() {
    ifstream fin("balanta.in");
    ofstream fout("balanta.out");
    fin>>n>>q;
    while (q--) {
        for (i=1;i<=n;i++) {
            st[i]=dr[i]=0;
        }
        fin>>m;
        for (i=1;i<=m;i++) {
            fin>>x;
            st[x]=1;
        }
        for (i=1;i<=m;i++) {
            fin>>x;
            dr[x]=1;
        }
        fin>>s;
        if (s==0) {
            for (i=1;i<=n;i++) {///monedele sunt egale
                if(st[i]||dr[i]) us[i]=gr[i]=1;
            }
        }
        else if (s==1) {///monedele din stanga sunt mai grele
            for (i=1;i<=n;i++) {
                if (st[i]) gr[i]=1;
                else if (dr[i]) us[i]=1;
                else st[i]=dr[i]=1;///moneda cautata se afla ori in stanga ori in dreapta, deci celelalte sunt normale
            }
        }
        else if (s==2) {///monedele din dreapta sunt mai grele
            for (i=1;i<=n;i++) {
                if (st[i]) us[i]=1;
                else if (dr[i]) gr[i]=1;
                else us[i]=gr[i]=1;
            }
        }
    }
    for (i=1;i<=n;i++) {
        if (us[i]!=gr[i]) {
            sol++;
            moneda=i;
        }
    }
    if (sol==1) fout<<moneda;
    else fout<<0;
    return 0;
}