#include <iostream> #include <vector> #include <algorithm> using namespace std; struct plecak{ int udzwig; bool czy_pusty; }; struct rzecz{ int waga; bool used; }; vector <plecak> p; vector <rzecz> r; bool sort_rzecz(rzecz a, rzecz b) { if(a.waga>b.waga) return 1; return 0; } bool sort_plecak(plecak a, plecak b) { if(a.udzwig>b.udzwig) return 1; return 0; } int main() { int n,m; cin>> n >> m; rzecz tmp; plecak tm; for(int i=0;i<n;i++) { cin>> tmp.waga; tmp.used=0; r.push_back(tmp); } for(int i=0;i<m;i++) { cin>> tm.udzwig; tm.czy_pusty=1; p.push_back(tm); } sort(p.begin(),p.end(),sort_plecak); sort(r.begin(),r.end(),sort_rzecz); int ile=0; bool dasie=1; for(int i=0;i<p.size();i++) { for(int j=0;j<r.size() && p[i].udzwig!=0;j++) { if(r[j].waga<=p[i].udzwig && !r[j].used) { p[i].udzwig-=r[j].waga; p[i].czy_pusty=0; r[j].used=1; } } } for(int i=0;i<r.size();i++) { if(!r[i].used) dasie=0; } for(int i=0;i<p.size();i++) { if(!p[i].czy_pusty) ile++; } if(dasie) cout<< ile <<endl; else cout<< "NIE"<<endl; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | #include <iostream> #include <vector> #include <algorithm> using namespace std; struct plecak{ int udzwig; bool czy_pusty; }; struct rzecz{ int waga; bool used; }; vector <plecak> p; vector <rzecz> r; bool sort_rzecz(rzecz a, rzecz b) { if(a.waga>b.waga) return 1; return 0; } bool sort_plecak(plecak a, plecak b) { if(a.udzwig>b.udzwig) return 1; return 0; } int main() { int n,m; cin>> n >> m; rzecz tmp; plecak tm; for(int i=0;i<n;i++) { cin>> tmp.waga; tmp.used=0; r.push_back(tmp); } for(int i=0;i<m;i++) { cin>> tm.udzwig; tm.czy_pusty=1; p.push_back(tm); } sort(p.begin(),p.end(),sort_plecak); sort(r.begin(),r.end(),sort_rzecz); int ile=0; bool dasie=1; for(int i=0;i<p.size();i++) { for(int j=0;j<r.size() && p[i].udzwig!=0;j++) { if(r[j].waga<=p[i].udzwig && !r[j].used) { p[i].udzwig-=r[j].waga; p[i].czy_pusty=0; r[j].used=1; } } } for(int i=0;i<r.size();i++) { if(!r[i].used) dasie=0; } for(int i=0;i<p.size();i++) { if(!p[i].czy_pusty) ile++; } if(dasie) cout<< ile <<endl; else cout<< "NIE"<<endl; } |