| # | 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... | ||||
