Submission #143311

#TimeUsernameProblemLanguageResultExecution timeMemory
143311nicolaalexandraAlkemija (COCI18_alkemija)C++14
80 / 80
196 ms11000 KiB
#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)

alkemija.cpp: In function 'int main()':
alkemija.cpp:41:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for (i=0;i<L[x].size();i++){
                  ~^~~~~~~~~~~~
alkemija.cpp:46:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                 for (int j=0;j<r[nr].size();j++){
                              ~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...