Advertisement
RaFiN_

lightoj 1299

Mar 16th, 2019
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.23 KB | None | 0 0
  1. /* keu kono jayga chere dile akta faka jayga + akta na bosha manush hate thake...mane faka jayga + manush er sonkha always soman vabe bare othoba kome....jokon U pabo tokon dekbo ager na bosa manush gula aei jayga e bosbe othoba bosbe na...ar jokon D pabo tokon ager faka jayga er manush gula aei jayga er sathe swap korbe othoba korbe na...*/
  2.  
  3.  
  4. ll dp[1002][1002];char s[1005];int vis[1002][1002],ajinka,len;
  5.  
  6. ll giveres(int pos,int baki)
  7. {
  8.     if(baki<0)return 0;
  9.     if(pos==len)return (baki==0);
  10.     int &ret = vis[pos][baki];
  11.     if(ret==ajinka)return dp[pos][baki];
  12.     dp[pos][baki] = 0;
  13.     ret = ajinka;
  14.     if(s[pos]=='E')dp[pos][baki] = giveres(pos+1,baki);
  15.     else if(s[pos]=='U')
  16.     {
  17.         dp[pos][baki] = baki * giveres(pos+1,baki);
  18.         dp[pos][baki]%=mod;
  19.         dp[pos][baki]+=giveres(pos+1,baki+1);
  20.         dp[pos][baki]%=mod;
  21.     }
  22.     else {
  23.         dp[pos][baki] = baki * giveres(pos+1,baki);
  24.         dp[pos][baki]%=mod;
  25.         dp[pos][baki]+=baki * baki * giveres(pos+1,baki-1);
  26.         dp[pos][baki]%=mod;
  27.  
  28.     }
  29.     return dp[pos][baki];
  30. }
  31.  
  32.  
  33. int main()
  34. {
  35.     //booster()
  36.     ///read("input.txt");
  37.     int t;
  38.     scani(t);
  39.     ajinka = 1;
  40.     while(t--){
  41.  
  42.         scanf(" %s",s);
  43.         len = strlen(s);
  44.         printf("Case %d: %lld\n",ajinka++,giveres(0,0));
  45.     }
  46.  
  47.  
  48.     return 0;
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement