Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:why i get CE ? compiled successfully in vs.net2005In Reply To:why i get CE ? compiled successfully in vs.net2005 Posted by:forgotten at 2006-03-27 11:18:32 > #include <fstream> > #include <vector> > #include <string> > #include <map> > using namespace std; > > const string GOAL = "Sorcerer's Stone"; > const int MaxLen = 100; > > map<string, vector<string>> stone; > map<string, int> exist; > int ans; > > void search(string key) { > > if (exist.find(key) == exist.end()) { > ans ++; > exist[key] = 1; > } > > if (stone[key].empty()) { > return; > } > > for (int i = 0; i < (int) stone[key].size(); i ++) { > search(stone[key][i]); > } > } > > void getstones(char *names, vector<string> &stones) { > > int len = (int) strlen(names); > string name; > > stones.clear(); > > for (int i = 0; i < len; i ++) { > if (names[i] == ',') { > stones.push_back(name); > name.clear(); > i ++; > continue; > } > name.push_back(names[i]); > } > stones.push_back(name); > } > > int main() { > > ifstream infile (stdin); > ofstream outfile (stdout); > > int n, m; > char names[MaxLen], buf[MaxLen], ch; > vector<string> stones; > > while (infile >> n >> m, n && m) { > > infile.getline(buf, MaxLen); > ans = 0; > stone.clear(); > exist.clear(); > > for (int i = 0; i < n; i ++) { > infile.getline(names, MaxLen); > exist[string(names)] = 1; > } > > for (int i = 0; i < m; i ++) { > infile.getline(names, MaxLen, ':'); > infile.get(ch); > getstones(names, stones); > infile.getline(names, MaxLen); > stone[string(names)] = stones; > } > > search(GOAL); > > outfile << ans << "\n"; > > } > > return 0; > } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator