PKU 1760 Disk Tree
http://poj.org/problem?id=1760
パース系。
思うようにフォルダ構造をデータ化するのにかなり手間取りました。
でも、こういうけいの問題は好きです。
map<string,set<string> > file; void insert(const string&in,int pos){ int spos=in.find("\\",pos); file[in.substr(0,pos)].insert(in.substr(pos,spos-pos)); if(spos+1<SZ(in))insert(in,spos+1); } void print(const string&in,int n){ FOR(siter,file[in]){ rep(i,n)cout<<' '; cout<<*siter<<endl; print(in+*siter+"\\",n+1); } } main(){ int n; cin>>n; rep(i,n){ string in; cin>>in; insert("\\"+in+"\\",1); } print("\\",0); }