# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
143311 | nicolaalexandra | Alkemija (COCI18_alkemija) | C++14 | 196 ms | 11000 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <iostream>
#include <vector>
#include <deque>
#define DIM 100010
using namespace std;
//ifstream fin ("date.in");
//ofstream fout ("date.out");
vector <int> r[DIM],L[DIM];
deque <int> c;
int f[DIM],cnt[DIM];
int n,m,i,j,nr1,nr2,x,k;
int main (){
cin>>n>>m;
for (i=1;i<=m;i++){
cin>>x;
f[x] = 1;
}
cin>>k;
for (i=1;i<=k;i++){
cin>>nr1>>nr2;
for (j=1;j<=nr1;j++){
cin>>x;
r[x].push_back(i); /// tin minte dint ce reactie face parte
if (!f[x])
cnt[i]++; /// cate elemente mai trebuie adaugate ca sa pot forma reactia
}
for (j=1;j<=nr2;j++){
cin>>x;
L[i].push_back(x);
}}
/// mai intai adaug intr o coada toate reactiile care deja se pot forma
for (i=1;i<=k;i++)
if (!cnt[i])
c.push_back(i);
while (!c.empty()){
int x = c.front();
c.pop_front();
for (i=0;i<L[x].size();i++){
int nr = L[x][i];
if (!f[nr]){
f[nr] = 1;
/// acum trebuie sa scad cnt ul pt fiecare reactie care il contine
for (int j=0;j<r[nr].size();j++){
cnt[r[nr][j]]--;
if (!cnt[r[nr][j]]) /// pot forma reactia
c.push_back(r[nr][j]);
}}}}
int sol = 0;
for (i=1;i<=n;i++)
if (f[i])
sol++;
cout<<sol<<"\n";
for (i=1;i<=n;i++)
if (f[i])
cout<<i<<" ";
return 0;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |