| ||||||||||
| 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 | |||||||||
实在搞不懂为什么是WA(1002)#include <iostream>
#include <functional>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int DMAP[]={50,50,50,51,51,51,52,52,52,53,53,53,54,54,54,55,55,55,55,56,56,56,57,57,57,57};
std::vector<std::string> vOutput;
void DelDash(char *p,char *output)
{
int iReadPos=0;
int iWritePos=0;
while(p[iReadPos]!='\0')
{
if(p[iReadPos]!='-')
{
if(iWritePos==3)
{
output[iWritePos++]='-';
}
if(p[iReadPos]>='A')
p[iReadPos]=(char)DMAP[p[iReadPos]-'A'];
output[iWritePos++]=p[iReadPos];
}
iReadPos++;
}
}
bool lessCmp(const string& str1,const string& str2)
{
return str1<str2;
}
int main(int argc, char *argv[])
{
char szOutput[100]={0};
char szBuf[100]={0};
int iCount=0;
scanf("%d",&iCount);
for(int i=0;i<iCount;i++)
{
scanf("%s",szBuf);
DelDash(szBuf,szOutput);
vOutput.push_back(szOutput);
memset(szOutput,0,sizeof(szOutput));
}
sort (vOutput.begin(), vOutput.end(),lessCmp);
vector<string>::iterator it;
vector<string>::iterator itNext;
vector<string>::iterator itend;
itend=vOutput.end();
itend--;
int nCount=1;
bool bOK=false;
for(it=vOutput.begin();it!=itend;it++)
{
itNext=it+1;
if(*itNext!=*it)
{
if(nCount>1)
{
bOK=true;
printf("%s %d\n",(*it).c_str(),nCount);
}
nCount=1;
}
else
{
nCount++;
}
}
if(!bOK)
{
printf("No duplicates.");
}
cin>>i;
return 0;
}
用sample来验证是正确的呀!
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator