Advertisement
Saleh127

UVA 10282 / Hash

Jan 1st, 2022
1,029
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /***
  2.  created: 2022-01-01-22.53.04
  3. ***/
  4.  
  5. #include <bits/stdc++.h>
  6. using namespace std;
  7. #define ll long long
  8. #define test int tt; cin>>tt; for(int cs=1;cs<=tt;cs++)
  9. #define get_lost_idiot return 0
  10. #define nl '\n'
  11.  
  12. ll mod[2]= {1000007707,1000007909};
  13. ll base[2]= {150,300};
  14.  
  15. int main()
  16. {
  17.     ios_base::sync_with_stdio(0);
  18.     cin.tie(0);
  19.     cout.tie(0);
  20.  
  21.  
  22.     ll n;
  23.  
  24.  
  25.  
  26.     map<pair<ll,ll>,string>x;
  27.     vector<pair<ll,ll>>y;
  28.  
  29.     string a;
  30.  
  31.     while(getline(cin,a) && a!="")
  32.     {
  33.         istringstream ss(a);
  34.  
  35.         string b,c;
  36.  
  37.         ss>>b>>c;
  38.  
  39.         ll n1=0,n2=0;
  40.         ll p1=1,p2=1;
  41.  
  42.         for(ll i=0; c[i]; i++)
  43.         {
  44.             n1=(n1+ (c[i]-'0'+1)*p1)%mod[0];
  45.             n2=(n2+ (c[i]-'0'+1)*p2)%mod[1];
  46.  
  47.             p1=(p1*base[0])%mod[0];
  48.             p2=(p2*base[1])%mod[1];
  49.         }
  50.  
  51.         x[{n1,n2}]=b;
  52.  
  53.     }
  54.  
  55.  
  56.     string b;
  57.  
  58.     while(cin>>b)
  59.     {
  60.         ll n1=0,n2=0;
  61.         ll p1=1,p2=1;
  62.  
  63.         for(ll i=0; b[i]; i++)
  64.         {
  65.             n1=(n1+ (b[i]-'0'+1)*p1)%mod[0];
  66.             n2=(n2+ (b[i]-'0'+1)*p2)%mod[1];
  67.  
  68.             p1=(p1*base[0])%mod[0];
  69.             p2=(p2*base[1])%mod[1];
  70.         }
  71.  
  72.          if(x[{n1,n2}].empty()==false) cout<<x[{n1,n2}]<<nl;
  73.          else cout<<"eh"<<nl;
  74.  
  75.     }
  76.  
  77.     get_lost_idiot;
  78. }
  79.  
  80.  
Advertisement
Advertisement
Advertisement
RAW Paste Data Copied
Advertisement