USACO 1.4.1 Packing Rectangles ―― 暴力+ 模拟(二)

2014-11-24 02:34:41 · 作者: · 浏览: 3
sh_back(make_pair(wb[4] , hb[4])); } if(s == s5) { if(wb[5] > hb[5])vec.push_back(make_pair(hb[5] , wb[5])); else vec.push_back(make_pair(wb[5] , hb[5])); } // sort(vec.begin() , vec.end()); // vector > :: iterator it; // it = unique(vec.begin(), vec.end() , cmp); // vec.reserve(distance(vec.begin() , it)); svec.push_back(make_pair(s , vec)); // cout << "s = " << s << ' ' << s1 << ' '<< s2 << ' '<< s3 << ' '<< s4 << ' ' << s5 << endl; // num++; } } } } // for(int i = 0 ; i < 4 ; i ++) // { // printf("%d = %d %d\n" , i + 1 , ww[i].first , ww[i].second); // } }while(next_permutation(ww.begin() , ww.end())); // cout << "(((((((((((((((((((num)))))))))))))))))))" << num << endl; sort(svec.begin() , svec.end()); // for(int i = 0 ; i < svec.size() ; i++)printf("**%d\n" , svec[i].first ); printf("%d\n" , svec[0].first); //svec[i].second.size(); vector
> ans; for(int k = 0 ; k < svec.size() ; k++) { if(svec[k].first == svec[0].first) { for(int i = 0 ;i < svec[k].second.size() ; i++) { ans.push_back(make_pair(svec[k].second[i].first , svec[k].second[i].second)); } } } // cout << "#$$$$" << ans.size() << endl; sort(ans.begin() , ans.end()); vector > :: iterator it; it = unique(ans.begin(), ans.end() , cmp); ans.reserve(distance(ans.begin() , it)); int num = it - ans.begin(); ans.resize(num); for(int i = 0 ; i < ans.size() ; i++)printf("%d %d\n" , ans[i].first , ans[i].second); } return 0; }