12376

#include <iostream> #include <vector> #include <queue> using namespace std; int value[104]; vector<int> vb[104]; int visit[104]; queue<int> ue; int learned; int _next; int findAns(int a) { int _max=0; if(vb[a].size()==0) { _next=a; //learned+=value[a]; return 0; } else { for(int i=0;i<vb[a].size();i++) { if(value[i]]>_max) { _max=value[i]]; _next=vb[a][i]; } } learned+=_max; return findAns(_next); } return 0; } int main() {

301

#include <iostream> #include <vector> #include <algorithm> using namespace std; struct order{ int start; int dest; int pss; int prft; }; vector<order> vb; int cap,b,num_order; int result; int passenger_cap[10]; int solve(int position_order,int max) { if(result<max) result=max; int f; while(position_order<=(num_order-1)) { f=0; for(int i=vb[position_order].start;i<vb[position_order].dest;i++) { passenger_cap[i]+=vb[position_order].pss; if(passenger_cap[i]>cap) { f=1; //break; } } if(!f) { solve(position_order+1,max+vb[position_order].prft); } for(int