Pabon_SEC

487--3279

Apr 10th, 2016
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.20 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. map<string,int>mp;
  6.  
  7. set<string>st;
  8.  
  9. char s[20];
  10.  
  11. string convert;
  12.  
  13. char letter[100];
  14.  
  15. void built_in()
  16. {
  17.     letter['A'] = '2';letter['B'] = '2';letter['C'] = '2';
  18.     letter['D'] = '3';letter['E'] = '3';letter['F'] = '3';
  19.     letter['G'] = '4';letter['H'] = '4';letter['I'] = '4';
  20.     letter['J'] = '5';letter['K'] = '5';letter['L'] = '5';
  21.     letter['M'] = '6';letter['N'] = '6';letter['O'] = '6';
  22.     letter['P'] = '7';letter['R'] = '7';letter['S'] = '7';
  23.     letter['T'] = '8';letter['U'] = '8';letter['V'] = '8';
  24.     letter['W'] = '9';letter['X'] = '9';letter['Y'] = '9';
  25. }
  26.  
  27. struct info
  28. {
  29.     string dial;
  30.  
  31.     int cnt;
  32.  
  33. }arr[100005];
  34.  
  35. int main()
  36. {
  37.     built_in();
  38.  
  39.     int n,tc,test,i,j,k,len;
  40.  
  41.     scanf("%d",&test);
  42.  
  43.     for(tc=1;tc<=test;tc++)
  44.     {
  45.         scanf("%d",&n);
  46.  
  47.         k = 0;
  48.  
  49.         for(i=1;i<=n;i++)
  50.         {
  51.             scanf("%s",s);
  52.  
  53.             len = strlen(s);
  54.  
  55.             convert="";
  56.  
  57.             for(j=0;j<len;j++)
  58.             {
  59.                 if(s[j]>='0' && s[j]<='9')
  60.                 {
  61.                     convert+=s[j];
  62.                 }
  63.                 else if(s[j]!='Q' && s[j]!='Z' && s[j]>='A' && s[j]<='Y')
  64.                 {
  65.                     convert+=letter[s[j]];
  66.                 }
  67.             }
  68.  
  69.             mp[convert]++;
  70.  
  71.             st.insert(convert);
  72.         }
  73.  
  74.         for(auto it: st)
  75.         {
  76.             arr[++k].dial = it;
  77.  
  78.             arr[k].cnt = mp[it];
  79.         }
  80.  
  81.         bool dhukse = false;
  82.  
  83.         for(i=1;i<=k;i++)
  84.         {
  85.             if(arr[i].cnt>1)
  86.             {
  87.                 dhukse = true;
  88.  
  89.                 for(j=0;j<=2;j++)
  90.                 {
  91.                     printf("%c",arr[i].dial[j]);
  92.                 }
  93.  
  94.                 printf("-");
  95.  
  96.                 for(j=3;j<=6;j++)
  97.                 {
  98.                     printf("%c",arr[i].dial[j]);
  99.                 }
  100.  
  101.                 printf(" %d\n",arr[i].cnt);
  102.             }
  103.         }
  104.  
  105.         if(!dhukse)
  106.         {
  107.             puts("No duplicates.");
  108.         }
  109.  
  110.         mp.clear();
  111.  
  112.         st.clear();
  113.  
  114.         if(tc<test)
  115.             puts("");
  116.     }
  117.  
  118.     return 0;
  119. }
Advertisement
Add Comment
Please, Sign In to add comment