Cod sursa(job #1071887)

Utilizator buzu.tudor67Tudor Buzu buzu.tudor67 Data 3 ianuarie 2014 17:23:48
Problema Aprindere Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include<fstream>
#include<vector>
#define maxn 1005
using namespace std;
ifstream fi("aprindere.in");
ofstream fo("aprindere.out");

vector <int> c[maxn];
int i,j,n,m,x,nr,q;
int t[maxn],sol=0;
bool aprins[maxn];

void aprinde(int k){
     int x;
     sol+=t[k];
     
     while(c[k].size()){
                        x=c[k].back();
                        aprins[x]=!aprins[x];
                        c[k].pop_back();
                       }
}

int main(){
    fi>>n>>m;
    
    for(i=0;i<n;i++) fi>>aprins[i];
    
    for(i=1;i<=m;i++){
                      fi>>x;
                      fi>>t[x]>>nr;
                      for(j=1;j<=nr;j++){
                                         fi>>q;
                                         c[x].push_back(q);
                                        }
                     }
    
    for(i=0;i<n;i++)
      if(!aprins[i]) aprinde(i);
    
    fo<<sol;
    
    fi.close();
    fo.close();
    return 0;
}