ZOJ 1181Word Amalgamation

来源:互联网 发布:金税盘数据导出 编辑:程序博客网 时间:2024/06/05 08:20
segmentation fault。弄不懂。
//1181Word Amalgamation#include <iostream>#include <stdio.h>#define FILE_DEBUG//#define _C_LAN_#ifdef FILE_DEBUG#include <fstream>#endifusing namespace std;#include <string>#include <map>#include <algorithm>int main(int argc, char *argv[]){#ifdef FILE_DEBUGifstream fin;fin.open("input.txt");cin.rdbuf(fin.rdbuf()); // assign file's streambuf to cin#ifdef _C_LAN_freopen("input.txt", "r", stdin);#endif#endif#ifdef FILE_DEBUGofstream fout;fout.open("output.txt");cout.rdbuf(fout.rdbuf()); // assign file's streambuf to cout#ifdef _C_LAN_freopen("output.txt", "w", stdout);#endif#endif      string str_tmp, sort_tmp;      multimap<string, string> dict;      multimap<string, string>::iterator it;      map<string, int> dict_out;      map<string, int>::iterator m_it;      while (cin >> str_tmp && str_tmp.compare("XXXXXX") != 0)      {            sort_tmp = str_tmp;            sort(sort_tmp.begin(), sort_tmp.end());            dict.insert(pair<string, string> (sort_tmp, str_tmp));      }      while (cin >> str_tmp           && str_tmp.compare("XXXXXX") != 0)      {           if (dict.size() <= 0)              continue;            sort(str_tmp.begin(), str_tmp.end());            it = dict.find(str_tmp);            if (it == dict.end())            {                   cout << "NOT A VALID WORD" << endl;            }            else            {                dict_out.clear();                while (it->first.compare(str_tmp) == 0)                {                      dict_out.insert(pair<string, int> (it->second, 0));                      it ++;                }                if (dict_out.size() > 0)                {                    for (m_it = dict_out.begin(); m_it != dict_out.end()                        ; m_it ++)                    {                        cout << m_it->first << endl;                    }                }            }            cout << "******" << endl;      }    return 0;}
原创粉丝点击