/// G. Hagopian looking at 1-D folding

#include <iostream>
#include <vector>
#include <cstdlib>
#include <ctime>

using namespace std;

class Segment {
public:
    Segment(short len, char ch) {
        length = len;
        fold = ch;
    }
    short length;
    char fold; /// M = mountain, V = valley, E = end
};

vector<Segment> createSequence(int);
void print(vector<Segment> S) {
    for(int i = 0; i < S.size()-1; ++i)
        cout << S[i].length << '-' << S[i].fold << '-';
    cout << S[S.size()-1].length << '-' << 'E';
}

int main() {
    srand(time(0));
    int n{0};
    cout << "\nEnter the number of segments in your sequence: ";
    do {
        cin >> n;
        if(n<=1) cout << "\nn must be at least 2."  << endl;
    } while(n<=1);
    vector<Segment> S = createSequence(n);
    print(S);
}


vector<Segment> createSequence(int n) {
    vector<Segment> vS;
    char ch;
    for(int i = 0; i < n-1; ++i) {
        if(rand()%2==0)
            ch = 'M';
        else ch = 'V';
        vS.push_back(Segment(rand(),ch));
    }
    vS.push_back(Segment(rand(),'E'));
    return vS;
}
