#line 72 "rand.w" #line 165 "rand.w" #include <iostream> #include <string> #include <vector> #include <algorithm> #line 72 "rand.w" #line 175 "rand.w" using namespace std; #line 73 "rand.w" #line 191 "rand.w" class line : public string { }; #line 198 "rand.w" istream& operator>>(istream& i, line& s) { s.clear(); #line 211 "rand.w" while (true) { char c; i.get(c); if (i.eof()) break; s.push_back(c); if (c == '\n') break; } #line 200 "rand.w" return i; } #line 192 "rand.w" #line 74 "rand.w" #line 109 "rand.w" template <class Container> struct randgen { typedef typename Container::difference_type argument_type; typedef typename Container::difference_type result_type; result_type operator()(argument_type n) { return lrand48() % n; } }; randgen<vector<line> > randgen1; #line 75 "rand.w" int main(int argc, char* argv[]) { #line 226 "rand.w" vector<line> lines; #line 79 "rand.w" #line 128 "rand.w" if (argc == 2) srand48(atoi(argv[1])); else { srand48(7); cerr << "******Rerun with one command line argument, an integer, " << "to get a different scrambling of the output." << endl; } #line 80 "rand.w" #line 232 "rand.w" typedef istream_iterator<line> line_input; copy(line_input(cin), line_input(), back_inserter(lines)); #line 81 "rand.w" #line 93 "rand.w" random_shuffle(lines.begin(), lines.end(), randgen1); #line 82 "rand.w" #line 252 "rand.w" typedef ostream_iterator<line> line_output; copy(lines.begin(), lines.end(), line_output(cout, "")); #line 83 "rand.w" return 0; }