fork download
  1. //...START BY DOING WHAT IS NECESSARY, THEN WHAT IS POSSIBLE AND SUDDENLY YOU ARE DOING THE IMPOSSIBLE...
  2. #include <bits/stdc++.h>
  3. using namespace std;
  4. #define FAST_FURIER ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
  5. #define pb push_back
  6. #define rep(i,a,N) for(ll i=a;i<N;i++)
  7. typedef long long ll;
  8. #define endl '\n'
  9. #define M 998244353
  10. bool comp(int x,int y)
  11. {
  12. return x > y;
  13. }
  14.  
  15.  
  16. /*..............................code starts here........................*/
  17. ll fac[100001];
  18. void fill(){
  19. fac[0] = 1;
  20. rep(i,1,100001){
  21. fac[i] = (fac[i-1]*i)%M;
  22. }
  23. //cout << fac[1] << " " << fac[2] << endl;
  24. }
  25. ll power(ll no,ll p)
  26. {
  27. if(p == 1)
  28. return no;
  29. if(p == 0)
  30. return 1;
  31. ll q = power(no,p/2);
  32. q = (q*q)%M;
  33. if(p % 2 != 0)
  34. q = (q*no)%M;
  35. return q;
  36. }
  37.  
  38. int main() {
  39. FAST_FURIER;
  40. fill();
  41. int t=1;
  42. cin >> t;
  43. ll m,n,k;
  44. string a,b,s;
  45. while(t--)
  46. {
  47. cin >> s;
  48.  
  49. //map<char,ll> mp;
  50. int arr[26]={0};
  51. rep(i,0,s.size()) arr[s[i]-'a'] += 1;
  52. int f = 0;
  53. ll mx = INT_MIN;
  54. string name;
  55. cin >> m;
  56. rep(i,0,m){
  57. cin >> a;
  58. int arr2[26]={0};
  59. rep(i,0,a.size()) arr2[a[i]-'a'] += 1;
  60.  
  61. //checking for difference
  62. int flag = 0;
  63. rep(i,0,26){
  64. if(arr2[i] > arr[i])
  65. {
  66. flag = 1;
  67. break;
  68. }
  69. }
  70.  
  71. if(flag)
  72. {
  73. cout << 0 << endl;
  74. }
  75. else
  76. {
  77. f = 1;
  78. ll pro = 1;
  79. rep(i,0,26)
  80. {
  81. if(arr2[i] > 0){
  82. pro = (pro * (fac[arr[i]] * power((fac[arr[i]-arr2[i]]*fac[arr2[i]]),M-2)))%M;
  83. }
  84. // cout << pro << endl;
  85. }
  86. cout << pro << endl;
  87.  
  88. if(pro > mx){
  89. mx = pro;
  90. name = a;
  91. }
  92.  
  93. }
  94. }
  95. if(f){
  96. cout << name << endl;;
  97. }
  98. else cout << "No Research This Month" << endl;
  99. }
  100. }
  101.  
Success #stdin #stdout 0s 4320KB
stdin
Standard input is empty
stdout
No Research This Month