Submission #145131

#TimeUsernameProblemLanguageResultExecution timeMemory
145131bogdan_buzatuAlkemija (COCI18_alkemija)C++14
80 / 80
197 ms12276 KiB
#include <iostream> #include <vector> using namespace std; struct reactie{ int needed; int contsol; int contramase; vector<int>soli; }v[100010]; vector<int>a[100010]; int freq[100010],checked[100010],q[100010]; int rightd,lefts=1; int n,m,x; int k,y,curent,curentt,cont; int main(){ cin>>n>>m; for(int i=1;i<=m;i++){ cin>>x; freq[x]=1; } cin>>k; for(int i=1;i<=k;i++){ cin>>v[i].contsol>>v[i].needed; v[i].contramase=v[i].contsol; for(int j=1;j<=v[i].contsol;j++){ cin>>x; a[x].push_back(i); if(freq[x]==1){ v[i].contramase--; if(v[i].contramase==0){ rightd++; q[rightd]=i; checked[i]=1; } } } for(int j=1; j<=v[i].needed; j++){ cin>>x; v[i].soli.push_back(x); } } while(lefts<=rightd){ curent=q[lefts]; for(int i=0; i<v[curent].soli.size(); i++){ y=v[curent].soli[i]; if(freq[y]==0){ freq[y]=1; for(int j=0; j<a[y].size(); j++){ curentt=a[y][j]; if(checked[curentt]==0){ v[curentt].contramase--; if(v[curentt].contramase==0){ rightd++; q[rightd]=curentt; checked[curentt]=1; } } } } } lefts++; } for(int i=1;i<=n;i++){ if (freq[i]==1){ cont++; } } cout<<cont<<"\n"; for(int i=1;i<=n;i++){ if (freq[i]==1){ cout<<i<<" "; } } }

Compilation message (stderr)

alkemija.cpp: In function 'int main()':
alkemija.cpp:51:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int i=0; i<v[curent].soli.size(); i++){
                      ~^~~~~~~~~~~~~~~~~~~~~~
alkemija.cpp:55:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                 for(int j=0; j<a[y].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...