Pagini recente » Cod sursa (job #2972980) | Cod sursa (job #2927412) | Cod sursa (job #2292362) | Cod sursa (job #2593709) | Cod sursa (job #935130)
Cod sursa(job #935130)
/// Craciun Catalin (c)
#include <fstream>
#include <iostream>
using namespace std;
ifstream f("aprindere.in");
ofstream g("aprindere.out");
int n,m;
long long timp;
int A[1001];
int C[1001][111];
void afisare(){
g<<timp<<"\n";
g.close();
}
void parcurgere(){
int i,j;
int x;
bool fini;
int pointer;
timp=0;
fini=0;
for (i=1;(i<=m)&&(!fini);i++){
fini=1;
for (j=1;(j<=n)&&(fini);j++)
if (A[j]==0)
fini=0;
if (!fini){
timp+=C[i][2];
for (j=1;j<=C[i][3];j++){
x=C[i][j+3];
if (A[x]==0)
A[x]=1;
else
A[x]=0;
}
}
else
break;
}
}
void sortare(){
int i,j,k;
int aux;
for (i=1;i<=m;i++){
for (j=i+1;j<=m;j++){
if (C[i][2]>C[j][2]){
for (k=1;k<=110;k++){
aux=C[i][k];
C[i][k]=C[j][k];
C[j][k]=aux;
}
}
}
}
}
void citire(){
int i,j;
f>>n>>m;
for (int i=1;i<=n;i++)
f>>A[i];
for (i=1;i<=m;i++){
f>>C[i][1]>>C[i][2]>>C[i][3];
for (j=1;j<=C[i][3];j++){
f>>C[i][j+3];
C[i][j+3]++;
}
}
f.close();
}
int main(){
citire();
sortare();
parcurgere();
afisare();
return 0;
}