Ranking (as of 2013-03-16): 152
Language: C++
/* UVa 11100 - The Trip, 2007 To build using Visual Studio 2008: cl -EHsc -O2 the_trip_2007.cpp */ #include <iostream> #include <vector> #include <algorithm> using namespace std; const int nr_bags_max = 10000; int bags[nr_bags_max]; int main() { bool first = true; while (true) { int n; cin >> n; if (!n) break; if (first) first = false; else cout << endl; for (int i = 0; i < n; i++) cin >> bags[i]; sort(bags, bags + n); int nr_duplicated = 1; // number of duplicated occurences of a same number int nr_pieces = 1; // max. number of duplicated occurences of a same number for (int i = 1, b = bags[0]; i < n; i++) { if (bags[i] == b) nr_duplicated++; else { nr_pieces = max(nr_duplicated, nr_pieces); b = bags[i]; nr_duplicated = 1; } } nr_pieces = max(nr_duplicated, nr_pieces); vector< vector<int> > packed_bags(nr_pieces); for (int i = 0; i < n; i++) packed_bags[i % nr_pieces].push_back(bags[i]); cout << nr_pieces << endl; for (int i = 0; i < nr_pieces; i++) { for (int j = 0, je = packed_bags[i].size(); j < je; j++) { if (j) cout << ' '; cout << packed_bags[i][j]; } cout << endl; } } return 0; }
No comments:
Post a Comment