void turing_t::simuliraj() { string curr = Q0; triple prijelaz; tuple QT; while (1) { QT.first = curr; QT.second = traka.at( head ); if (delta.find( QT ) == delta.end()) { break; } else { prijelaz = delta[ QT ]; if ( (head == MIN && prijelaz.third == "L") || ( head == MAX && prijelaz.third == "R" ) ) { break; } curr = prijelaz.first; traka[ head ] = prijelaz.second; head += prijelaz.third == "R" ? +1 : -1; } } printf("%s|%d|", curr.c_str(), head); for ( vit it = traka.begin(); it != traka.end(); ++it ) { printf("%s", it->c_str()); } printf("|%d\n", (int)F.count( curr )); return; }
void turing_t::output() { for ( sit it = Q.begin(); it != Q.end(); ++it ) { printf("%s ", it->c_str() ); } puts( "" ); for ( sit it = sigma.begin(); it != sigma.end(); ++it ) { printf("%s ", it->c_str() ); } puts( "" ); for ( sit it = theta.begin(); it != theta.end(); ++it ) { printf("%s ", it->c_str() ); } puts( "" ); printf("%s\n", prazanZnak.c_str()); for ( vit it = traka.begin(); it != traka.end(); ++it ) { printf("%s", it->c_str()); } puts( "" ); for ( sit it = F.begin(); it != F.end(); ++it ) { printf("%s ", it->c_str() ); } puts( "" ); printf("%s\n", Q0.c_str()); printf("%d\n", head); for ( map< tuple, triple >::iterator it = delta.begin(); it != delta.end(); ++it ) { printf("%s,%s -> %s,%s,%s\n", it->first.first.c_str(), it->first.second.c_str(), it->second.first.c_str(), it->second.second.c_str(), it->second.third.c_str()); } return; }
constr vStrToStr(const vstr& vec_str, int spos) //spos = start position { str str = ""; for(uint i=spos; i<vec_str.size(); i++) { str += " " + vec_str.at(i); //space to show where tokens start and end } return str; }
string buildPath(const vstr &path) { string r; for( size_t j=0; j<path.size(); j++ ) { if( path[j] == "." ) continue; r+=path[j]; if( j+1<path.size() ) r+="/"; } return r; }
vector<vstr> mergeRows(const vstr& dt) { vector<vstr> ret; vstr row; for(int i=0, inrow=0; i<dt.size(); i++){ if(dt[i].find("<TR valign=\"top\">") != string::npos || dt[i].find("<tr valign=\"top\">") != string::npos){ if(inrow) error("Invalid format! Nested <tr> tags"); inrow = 1; row.clear(); continue; }else if(inrow && dt[i].find("</TR>") != string::npos || inrow && dt[i].find("</tr>") != string::npos){ inrow = 0; ret.push_back(row); continue; } if(inrow) row.push_back(dt[i]); } return ret; }
int main() { scanf("%d",&TC); while(TC--) { // erase all elements: Data.erase (Data.begin(),Data.end()); pos = 0; scanf("%d",&n); REP(a,n) { if(a == 0) getline(cin,temp); getline(cin,temp); // Masukkan ke vector Data.pb(temp); // Debugging //cout << Data[a] << endl; if(Data[a][0] == 'L') pos--; else if(Data[a][0] == 'R')pos++; // Jika sama else if(Data[a][0] == 'S') { idx = Data[a][8] - '0'; // Debugging //printf("Index : %d\n",index); if(Data[idx - 1][0] == 'L') pos--; else if(Data[idx - 1][0] == 'R') pos++; // Jika dapat Same As lagi else { sameAs(a,idx); } } } printf("%d\n",pos); } return 0; }
void turing_t::input() { vstr v; string line; v = split( readline(), "," ); for ( vit it = v.begin(); it != v.end(); ++it ) { Q.insert( *it ); } v = split( readline(), "," ); for ( vit it = v.begin(); it != v.end(); ++it ) { sigma.insert( *it ); } v = split( readline(), "," ); for ( vit it = v.begin(); it != v.end(); ++it ) { theta.insert( *it ); } prazanZnak = readline(); line = readline(); for (int i = 0; i < line.length(); i++) { traka.push_back( line.substr( i, 1 ) ); } v = split( readline(), "," ); for ( vit it = v.begin(); it != v.end(); ++it ) { F.insert( *it ); } Q0 = readline(); line = readline(); sscanf( line.c_str(), "%d", &head ); while (1) { line = readline(); if (line.length() <= 0) { break; } v = split( line, "->" ); string RHS = v[1], LHS = v[0]; tuple a; triple b; v = split( LHS, "," ); a.first = v[0]; a.second = v[1]; v = split( RHS, "," ); b.first = v[0]; b.second = v[1]; b.third = v[2]; delta[a] = b; } return; }
void readNames(std::istream &is, vstr &x) { while(1) { string s; is>>s; if( !is ) break; x.push_back(s); } }
void removeHTMLTagsVec(vstr& lines) { vstr ret; for(int i=0; i<lines.size(); i++){ string inner = removeHTMLTags(lines[i]); if(inner != "") ret.push_back(inner); } lines = ret; }
int main() { int a,b,ben = 0,selesai; string temp; scanf("%d %d",&R,&C); // Input REP(a,R) { temp = GetString(); data.pb(temp); }
vstr getDataTable(const vstr& lines) { vstr v; for(int i=0, seen=0; i<lines.size(); i++){ if(lines[i] == DATA_START_MARKER){ seen = 1; continue; }else if(lines[i] == DATA_END_MARKER) return v; if(seen) v.push_back(lines[i]); } error("Invalid format!"); }