Advertisement
Patrickmeme

Carte2- 88 p

May 21st, 2023
967
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.48 KB | None | 0 0
  1. #include <fstream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. ifstream cin("carte.in");
  6. ofstream cout("carte.out");
  7.  
  8. #define MAXSUM 1050000
  9.  
  10. int conv[128],frv[MAXSUM+1];
  11.  
  12. void atribuire(){
  13.     string s="0123456789abcdefghij";
  14.     int put=1,i;
  15.     for(i=0;i<s.size();i++){
  16.         conv[(int)s[i]]=put;
  17.         put*=2;
  18.     }
  19. }
  20. string v[100000];
  21.  
  22. bool ver(int i,int n,int sum){
  23.     int cnt,j;
  24.     cnt=0;
  25.     if(v[i].size()==v[n-1].size()){
  26.         cnt=0;
  27.         for(j=0;j<v[i].size();j++){
  28.             if((sum/conv[(int)v[i][j]])%2==0)
  29.                 cnt++;
  30.  
  31.         }
  32.     }
  33.     if(cnt==1)
  34.         return 1;
  35.     else
  36.         return 0;
  37. }
  38.  
  39. int main()
  40. {
  41.     int cer,n,i,j,max1,cnt,sum;
  42.     string s;
  43.     cin>>cer>>n;
  44.     atribuire();
  45.     if(cer==1){
  46.         for(i=0;i<n;i++){
  47.             cin>>s;
  48.             sum=0;
  49.             for(j=0;j<s.size();j++){
  50.                 sum+=conv[s[j]];
  51.             }
  52.             frv[sum]++;
  53.         }
  54.         max1=cnt=0;
  55.         for(i=1;i<=MAXSUM;i++){
  56.             if(frv[i]>max1){
  57.                 max1=frv[i];
  58.                 cnt=1;
  59.             }else if(frv[i]==max1)
  60.                 cnt++;
  61.         }
  62.         cout<<max1<<"\n"<<cnt;
  63.     }else{
  64.         for(i=0;i<n;i++){
  65.             cin>>v[i];
  66.         }
  67.         sum=cnt=0;
  68.         for(j=0;j<v[n-1].size();j++){
  69.             sum+=conv[(int)v[n-1][j]];
  70.         }
  71.         for(i=0;i<n-1;i++){
  72.             cnt+=ver(i,n,sum);
  73.         }
  74.         cout<<cnt;
  75.     }
  76.     return 0;
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement