#include using namespace std; //#define DEBUG typedef struct wood{ int id; int width; int height; }wood; bool compare(wood a, wood b){ if(a.width!=b.width){ return a.width> n >> k; //高さの合計 int sum=0; //「木の先端」 vector wooden_head(n); //「木の先端」の幅 for(int i=0;i> wooden_head[i].width; } //「木の先端」の高さ for(int i=0;i> wooden_head[i].height; sum+=wooden_head[i].height; } //ソート sort(wooden_head.begin(),wooden_head.end(),compare); //「木の中央」 vector wooden_central(2*n); //「木の中央」の幅 for(int i=0;i<2*n;i++){ wooden_central[i].id=i+1; cin >> wooden_central[i].width; } //「木の中央」の高さ for(int i=0;i<2*n;i++){ cin >> wooden_central[i].height; sum+=wooden_central[i].height; } //ソート sort(wooden_central.begin(),wooden_central.end(),compare); //「木の幹」 vector wooden_trunk(n); //「木の幹」の幅 for(int i=0;i> wooden_trunk[i].width; } //「木の幹」の高さ for(int i=0;i> wooden_trunk[i].height; sum+=wooden_trunk[i].height; } //ソート sort(wooden_trunk.begin(),wooden_trunk.end(),compare); //木の高さの平均 int avg=(sum+n/2)/n; #ifdef DEBUG for(wood w:wooden_head){ cout << w.id << ' '; } cout << endl; for(wood w:wooden_central){ cout << w.id << ' '; } cout << endl; for(wood w:wooden_trunk){ cout << w.id << ' '; } cout << endl; #endif vector> woods(k,vector(4)); //幹は幅小⇒大、中央は幅大⇒小に確定させていく int j=0; while(j=n)break; } j++; } j=0; while(j