Cod sursa(job #2169118)

Utilizator TrolliciousSir Troll Trollicious Data 14 martie 2018 13:31:29
Problema Aprindere Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.79 kb
/*#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("aprindere.in");
ofstream g("aprindere.out");
struct intrerupator
{
    int loc,t,nrafect,v[101];
} a[1001];
int cam[1001];
int n,m,i,j;
int verif(intrerupator x,int A)
{
    ok=0;
    for(j=1; j<=x.nrafect; j++)
        if(x.v[j]==A)
        {
            ok=1;
            break;
        }
    return ok;
}
int ok(intrerupator x)
{
    poz=0;
    for(i=1; i<=n; i++)
        if(cam[i]==0&&verif(x,cam[i])==1) poz++;
    return poz;
}
int compare(intrerupator x,intrerupator y)
{
    if(x.t<y.t) return 1;
    if(x.t==y.t&&x.nrafect<y.nrafect) return 1;
    if(x.t==y.t&&x.nrafect==y.nrafect&&ok(x)<=ok(y)) return 1;
}
int main()
{
    f>>n>>m;
    for(i=1; i<=n; i++) f>>cam[i];
    for(i=1; i<=m; i++)
    {
        f>>a[i].loc>>a[i].t>>a[i].nrafect;
        for(j=1; j<=a[i].nrafect; j++) f>>a[i].v[j];
    }
    sort(a+1,a+n+1,compare);
    for(i=n; i>=1; i--)
    {
            if(cam[i]==0&&verif(a,cam[i])==1)
                for()
    }
    return 0;
}*/
#include <fstream>

using namespace std;
ifstream f("aprindere.in");
ofstream g("aprindere.out");
struct adda
{
    int t,nr;
} v[1001];
int c[1005][1005],n,m,a[1001],ca,i,j,timp;
int main()
{
    f>>n>>m;
    for (i=0; i<n; i++)
    {
        f>>a[i];
    }
    for (i=1; i<=m; i++)
    {
        f>>ca;
        f>>v[ca].t>>v[ca].nr;
        for (j=1; j<=v[ca].nr; j++)
        {
            f>>c[ca][j];
        }
    }
    timp=0;
    for (i=0; i<n; i++)
    {
        if (a[i]==0)
        {
            timp=timp+v[i].t;
            for (j=1; j<=v[i].nr; j++)
            {
                a[c[i][j]]=1-a[c[i][j]];
            }
        }
    }
    g<<timp;
    return 0;
}