#include <map>
#include <vector>
#include <string>
#include <iostream>
#include <fstream>
int main()
{
std::istream& infile = std::cin;
std::map < int, std::string > ID;
std::map < int, std::string > dataSetMap;
int idNumber= 0;
int idDataSetNumber = 0;
std::string line;
std::vector<std::string> dataSetString;
std::string seqid;
bool success = std::getline(infile, line);
while(success) {
if( line.substr(0,1) == ">" ) {
seqid = line.substr(1,line.length() - 1);
ID.insert(make_pair( idNumber++, seqid));
std::string data;
while(success = std::getline(infile, line)) {
if(line.substr(0,1) == ">") break;
data += line;
}
dataSetMap.insert(make_pair(idDataSetNumber++, data));
} else {
std::cout << "Invalid input file. It needs to start with >SOME_ID" << std::endl;
return 1;
}
}
std::cout << "Parsed data ----------------" << std::endl;
for(std::map<int,std::string>::const_iterator it = dataSetMap.begin(); it != dataSetMap.end(); ++it) {
std::cout << "Id: " << ID[it->first] << std::endl;
std::cout << (it->second) << std::endl;
}
}
I2luY2x1ZGUgPG1hcD4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnN0cmVhbT4KCmludCBtYWluKCkKewogICAgc3RkOjppc3RyZWFtJiBpbmZpbGUgPSBzdGQ6OmNpbjsKICAgIHN0ZDo6bWFwIDwgaW50LCBzdGQ6OnN0cmluZyA+IElEOwogICAgc3RkOjptYXAgPCBpbnQsIHN0ZDo6c3RyaW5nID4gZGF0YVNldE1hcDsKICAgIGludCBpZE51bWJlcj0gMDsKICAgIGludCBpZERhdGFTZXROdW1iZXIgPSAwOwoKICAgIHN0ZDo6c3RyaW5nIGxpbmU7CiAgICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gZGF0YVNldFN0cmluZzsKICAgIHN0ZDo6c3RyaW5nIHNlcWlkOwoKICAgIGJvb2wgc3VjY2VzcyA9IHN0ZDo6Z2V0bGluZShpbmZpbGUsIGxpbmUpOwogICAgd2hpbGUoc3VjY2VzcykgewogICAgICAgIGlmKCBsaW5lLnN1YnN0cigwLDEpID09ICI+IiApIHsKICAgICAgICAgICAgc2VxaWQgPSBsaW5lLnN1YnN0cigxLGxpbmUubGVuZ3RoKCkgLSAxKTsKICAgICAgICAgICAgSUQuaW5zZXJ0KG1ha2VfcGFpciggaWROdW1iZXIrKywgc2VxaWQpKTsKICAgICAgICAgICAgc3RkOjpzdHJpbmcgZGF0YTsKICAgICAgICAgICAgd2hpbGUoc3VjY2VzcyA9IHN0ZDo6Z2V0bGluZShpbmZpbGUsIGxpbmUpKSB7CiAgICAgICAgICAgICAgICBpZihsaW5lLnN1YnN0cigwLDEpID09ICI+IikgYnJlYWs7CiAgICAgICAgICAgICAgICBkYXRhICs9IGxpbmU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZGF0YVNldE1hcC5pbnNlcnQobWFrZV9wYWlyKGlkRGF0YVNldE51bWJlcisrLCBkYXRhKSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgc3RkOjpjb3V0IDw8ICJJbnZhbGlkIGlucHV0IGZpbGUuIEl0IG5lZWRzIHRvIHN0YXJ0IHdpdGggPlNPTUVfSUQiIDw8IHN0ZDo6ZW5kbDsKICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgfQogICAgfQoKICAgIHN0ZDo6Y291dCA8PCAiUGFyc2VkIGRhdGEgLS0tLS0tLS0tLS0tLS0tLSIgPDwgc3RkOjplbmRsOwogICAgZm9yKHN0ZDo6bWFwPGludCxzdGQ6OnN0cmluZz46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gZGF0YVNldE1hcC5iZWdpbigpOyBpdCAhPSBkYXRhU2V0TWFwLmVuZCgpOyArK2l0KSB7CiAgICAgICAgc3RkOjpjb3V0IDw8ICJJZDogIiA8PCBJRFtpdC0+Zmlyc3RdIDw8IHN0ZDo6ZW5kbDsKICAgICAgICBzdGQ6OmNvdXQgPDwgKGl0LT5zZWNvbmQpIDw8IHN0ZDo6ZW5kbDsKICAgIH0KfQo=
Jmd0O1Jvc2FsaW5kXzY0MDQKQ0NUR0NHR0FBR0FUQ0dHQ0FDVEFHQUFUQUdDQ0FHQUFDQ0dUVFRDVENUR0FHR0NUVENDR0dDQ1RUQ0NDClRDQ0NBQ1RBQVRBQVRUQ1RHQUdHCiZndDtSb3NhbGluZF81OTU5CkNDQVRDR0dUQUdDR0NBVENDVFRBR1RDQ0FBVFRBQUdUQ0NDVEFUQ0NBR0dDR0NUQ0NHQ0NHQUFHR1RDVApBVEFUQ0NBVFRUR1RDQUdDQUdBQ0FDR0MKJmd0O1Jvc2FsaW5kXzA4MDgKQ0NBQ0NDVENHVEdHVEFUR0dDVEFHR0NBVFRDQUdHQUFDQ0dHQUdBQUNHQ1RUQ0FHQUNDQUdDQ0NHR0FDClRHR0dBQUNDVEdDR0dHQ0FHVEFHR1RHR0FBVA==
>Rosalind_6404
CCTGCGGAAGATCGGCACTAGAATAGCCAGAACCGTTTCTCTGAGGCTTCCGGCCTTCCC
TCCCACTAATAATTCTGAGG
>Rosalind_5959
CCATCGGTAGCGCATCCTTAGTCCAATTAAGTCCCTATCCAGGCGCTCCGCCGAAGGTCT
ATATCCATTTGTCAGCAGACACGC
>Rosalind_0808
CCACCCTCGTGGTATGGCTAGGCATTCAGGAACCGGAGAACGCTTCAGACCAGCCCGGAC
TGGGAACCTGCGGGCAGTAGGTGGAAT