POJ 1002 487-3279

来源:互联网 发布:linux 端口转发工具 编辑:程序博客网 时间:2024/06/05 19:42

     简单模拟题。

         

#include<cstdio>#include<cstring>#include<iostream>#include<stdlib.h>using namespace std;int cmp(const void *a,const void *b){   return *(int *)a - *(int *)b;}void ini(int *map){  for (int i = 0; i <= 9; i++)         map[i + '0'] = i;     map['A'] = map['B'] = map['C'] = 2;     map['D'] = map['E'] = map['F'] = 3;     map['G'] = map['H'] = map['I'] = 4;     map['J'] = map['K'] = map['L'] = 5;     map['M'] = map['N'] = map['O'] = 6;     map['P'] = map['R'] = map['S'] = 7;     map['T'] = map['U'] = map['V'] = 8;     map['W'] = map['X'] = map['Y'] = 9;}int main(){    int map[256];    char str[256];    ini(map);    int n;    int *s;    cin >> n;    s = new int[n];    for(int i=0; i<n; ++i)    {      scanf("%s",str);      int sum = 0;      for(int e=0; str[e]!='\0'; ++e)      {        if(str[e]=='-')         continue;        else         sum = sum*10 + map[str[e]];      }      s[i] = sum;    }    qsort(s,n,sizeof(int),cmp);    int i = 0;    int flag = 0;    for(int j=0; j<n; )    {      i = j;      while(s[++i]==s[j]);      if(i-1!=j)      {        printf("%03d-%04d %d\n",s[j]/10000,s[j]%10000,i-j);       flag = 1;      }       j = i;    }    if(!flag)      cout<<"No duplicates."<<endl;    return 0;}


原创粉丝点击