比赛 20160407树结构练习 评测结果 AAAAAAAAAA
题目名称 单词查找树 最终得分 100
用户昵称 ミント 运行时间 1.748 s
代码语言 C++ 内存使用 0.35 MiB
提交时间 2016-04-07 18:55:38
显示代码纯文本
#include <fstream>
#include <algorithm>
#include <string>
#include <cstring>

using namespace std;

ifstream fin("trie.in");
ofstream fout("trie.out");

const int Maxn = 520 + 10000;
const int Maxm = 63 + 2;
string Str[Maxn];
int N, Ans = 0;

void Init()
{
	//memset(Str, "", sizeof(Str));
	
	return ;
}
void Read()
{
	int i = 1;
	while(!fin.eof())
	{
		fin>>Str[i];
		i++;
	}
	N = i;
	
	return ;
}
void Swap_String(string &X, string &Y)
{
	string Temp = X;
	X = Y;
	Y = Temp;
	return ;
}
bool Cmp_String(string X, string Y)
{
	//if(X.length()>Y.length())
		//return true;
	return X > Y;
}
void Work()
{
	//Bubble Sort;
	for(int i=2;i<=N;i++)
		for(int j=2;j<=N;j++)
			if(Cmp_String(Str[j-1], Str[j]))
				Swap_String(Str[j-1], Str[j]);
	for (int i=1;i<=N;i++)  
        for (int j=0;j<Str[i].length();j++)  
            if (Str[i][j]!=Str[i-1][j])  
            {  
                Ans += Str[i].length() - j;  
                break;  
            }  
	Ans += 1;
	return ;
}
void Write()
{
	fout<<Ans<<endl;
	
	//for(int i=1;i<=N;i++)
		//fout<<Str[i]<<endl;
	
	return ;
}
int main()
{
	Init();
	
	Read();
	
	Work();
	
	Write();
	
	fin.close();
	fout.close();
	
	return 0;
}