#include "glpk.h" #include #include #include #include using namespace std; int main() { ifstream in("dump"); string s; int to_read; in >> to_read; const int k = to_read; int* const ia = new int[1+k]; int* const ja = new int[1+k]; double* const ar = new double[1+k]; for (int i=1; i> ia[i]; in >> ja[i]; in >> s; sscanf(s.c_str(), "%la", ar+i); } in >> to_read; const int n = to_read; glp_prob* lp = glp_create_prob(); glp_add_rows(lp, n); glp_add_cols(lp, n); for (int i=1; i<=n; ++i) { double lb, ub; in >> s; sscanf(s.c_str(), "%la", &lb); in >> s; sscanf(s.c_str(), "%la", &ub); int row_type = GLP_FX; if (lb != ub) row_type = GLP_DB; glp_set_row_bnds(lp, i, row_type, lb, ub); } for (int j=1; j<=n; ++j) { glp_set_col_bnds(lp, j, GLP_DB, -1.0, 1.0); glp_set_obj_coef(lp, j, 0.0); } glp_load_matrix(lp, k-1, ia, ja, ar); glp_write_lp(lp, 0, "dump.lp"); glp_smcp parm; glp_init_smcp(&parm); glp_scale_prob(lp, GLP_SF_AUTO); glp_simplex(lp, &parm); glp_set_obj_coef(lp, 6, 1.0); glp_simplex(lp, &parm); glp_set_obj_coef(lp, 6, 0.0); glp_set_obj_coef(lp, 8, 1.0); glp_simplex(lp, &parm); glp_set_obj_coef(lp, 8, 0.0); glp_set_obj_coef(lp, 6, -1.0); glp_simplex(lp, &parm); glp_set_obj_coef(lp, 6, 0.0); glp_set_obj_coef(lp, 2, 1.0); glp_simplex(lp, &parm); glp_set_obj_coef(lp, 2, 0.0); glp_set_obj_coef(lp, 1, 1.0); glp_simplex(lp, &parm); printf("Never gets here!\n"); return 0; }