#include #include #include using namespace std; const int specialtests = 5 , randomtests = 15 , maxMaps = 100 , maxCities = 1000; int Top; void construct ( int pnode , int numLeft ) { if ( numLeft == 1 ) return; numLeft --; int leftsize = rand() % numLeft + 1 , rightsize = numLeft - leftsize; if ( leftsize ) { ++ Top; cout << pnode <<" L " << Top << endl; construct ( Top , leftsize ); } if ( rightsize ) { ++ Top; cout << pnode << " R " << Top << endl; construct ( Top , rightsize ); } } void outputSample() { cerr <<"Generating sample inputs" << endl; string sample = "3\n5\n1 L 2\n1 R 3\n3 L 4\n3 R 5\n4\n1 R 2\n1 L 3\n2 L 4\n3\n1 L 2\n1 R 3\n2\n5\n1 L 2\n2 L 3\n3 L 4\n4 L 5\n6\n1 L 2\n2 R 3\n3 L 4\n4 R 5\n5 L 6\n"; cout << sample << endl; } void outputWorstCase() { cerr <<"Generating worst case inputs" << endl; // 100 Ls cout << maxMaps << endl; for ( int i=0;i