记录编号 |
125407 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[福州培训2010] 文件夹计数 |
最终得分 |
100 |
用户昵称 |
devil |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.193 s |
提交时间 |
2014-10-08 18:48:52 |
内存使用 |
0.31 MiB |
显示代码纯文本
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <deque>
#include <map>
#include <algorithm>
using namespace std;
map<pair<string,string>,int> floder;
int main()
{
freopen("folder.in","r",stdin);
freopen("folder.out","w",stdout);
int T=0;int ans=0;
int kase,i,j;
scanf("%d\n",&T);
for(int kase=0;kase<T;kase++)
{
char file[220];
bool Root=false; //判断之后的文件夹要不要新建
string FileName=""; //记录当前文件夹名
string LastFile=""; //记录当前文件夹的上一个文件夹
scanf("%s\n",file);
int len=strlen(file);
for(i=0;i<len;i++)
{
//提取文件夹名称
if(file[i]=='/')
{
for(j=i+1;file[j]!='/'&&j<len;j++)
{
FileName+=file[j];
}
}
i=j-1;
//判断之后的文件夹要不要新建
if(floder[make_pair(FileName,LastFile)]==0) Root=true;
//是否要新建文件夹
if(floder[make_pair(FileName,LastFile)]==0||Root)
{
ans++;
floder[make_pair(FileName,LastFile)]=1;
}
LastFile=FileName;
}
printf("%d\n",ans);
}
//system("PAUSE");
return 0;
}