| ||||||||||
| 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?用结构写了一个,超时,又重新写了一个,wa……可怜可怜, 帮帮忙吧】 //////////////////////////////////
//acm.1002..00448233.liuyang./////
//////////////////////////////////
#include <iostream.h>
#include <stdlib.h>
int nTens=1000000, nYes1, nYes2;
int compare(const void *a1 ,const void *a2);
void main(){
int nLine;
char cRead;
char cTempdelete[2];
cin >> nLine;
int *nPhone = new int [nLine];
int *nOfPhone = new int [nLine];
cin.getline(cTempdelete,'\n');
for(int i=0;i<nLine;i++){
nTens=1000000;
nOfPhone[i] = 1;
nPhone[i] = 0;
while(1){
cRead = cin.get();
if(cRead == '\n') break;
else if(cRead == '-') continue;
else if(cRead >= 'A' && cRead <= 'P') {nPhone[i] += nTens * ((cRead - 'A') / 3 + 2); nTens /= 10;}
else if(cRead >= 'R' && cRead <= 'Y') {nPhone[i] += nTens * ((cRead - 'A' - 1) / 3 + 2); nTens /= 10;}
else if(cRead >= '0' && cRead <= '9') {nPhone[i] += nTens * (cRead - '0'); nTens /= 10;}
}
}
qsort((void *)nPhone, nLine, sizeof(nPhone[0]), compare);
for(i = 0; i < nLine; i ++){
if(nPhone[i] < 999999)continue;
for(int j = i + 1; j < nLine; j ++){
if(nPhone[j] < 999999)continue;
if(nPhone[i] == nPhone[j]){
nOfPhone[i] ++;
nYes1 = 1;
nPhone[j] = j;
nYes2 = 1;
}
}
if(nYes1 > 0)
cout <<nPhone[i] / 1000000 <<nPhone[i] % 1000000 / 100000 <<nPhone[i] % 100000 / 10000 << "-"
<< (nPhone[i] % 10000) / 1000 << (nPhone[i] % 1000) / 100
<< (nPhone[i] % 100) / 10 << (nPhone[i] % 10) << " " <<nOfPhone[i] << endl;
nOfPhone[i] = 1;
nYes1 = 0;
}
if(nYes2 == 0) cout <<"No duplicates." <<endl;
}
int compare(const void *a1 ,const void *a2){return *(int *)a1 -*(int *)a2;}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator