Cod sursa(job #7114)

Utilizator bogdanhm999Casu-Pop Bogdan bogdanhm999 Data 21 ianuarie 2007 12:34:11
Problema Aprindere Scor 5
Compilator cpp Status done
Runda preONI 2007, Runda 1, Clasa a 9-a si gimnaziu Marime 0.93 kb
#include <fstream.h>

ifstream f1("aprindere.in");
ofstream f2("aprindere.out");

int main(){
    int n,m,i,j,a[1001],c[1001],v[1001][101],nr[1004],ok;
    double t[1001],st,tmin=1000000;
    int q[1001],b[1001];
    f1>>n;f1>>m;
    for (i=0;i<n;i++)f1>>a[i];
    for (i=1;i<=m;i++){
        f1>>c[i];f1>>t[i];f1>>nr[i];
        for (j=1;j<=nr[i];j++)f1>>v[i][j];
    }
    for (i=0;i<=m;i++)q[i]=0;

    while (q[0]==0){
          for (i=0;i<n;i++)b[i]=a[i];
          st=0;
          for (i=1;i<=m;i++)if (q[i]==1){
              for (j=1;j<=nr[i];j++){
                  b[v[i][j]]=(b[v[i][j]]+1)%2;
              }
              st+=t[i];
          }
          ok=1;
          for (i=0;i<n;i++)if (!b[i]){ok=0;break;}
          if (ok==1&&st<tmin)tmin=st;
          q[m]++;
          for (i=m;i>=1;i--)if (q[i]==2){q[i]=0;q[i-1]++;}
    }
    f2<<tmin<<'\n';
    f1.close();
    f2.close();
    return 0;
}