fork download
  1. // created by Whiplash99
  2. import java.io.*;
  3. import java.util.*;
  4. class C
  5. {
  6. public static void main(String[] args) throws IOException
  7. {
  8.  
  9. int i,j,N;
  10.  
  11. N=Integer.parseInt(br.readLine().trim());
  12. char arr[][]=new char[3][N];
  13. int dp[][][]=new int[3][N][2];
  14.  
  15. for(i=0;i<3;i++)
  16. arr[i]=br.readLine().trim().toCharArray();
  17. for(i=0;i<3;i++)
  18. {
  19. if(arr[i][N-1]=='R')
  20. dp[i][N-1][1]=1;
  21. else
  22. dp[i][N-1][0]=1;
  23. }
  24.  
  25.  
  26. /*
  27.   j: column number.
  28.   i: row number.
  29.   k: starting from this cell with parity k.
  30.  
  31.   dp[i][j][k] = number of chains starting from cell (i,j) with parity k.
  32.   */
  33. for(j=N-2;j>=0;j--)
  34. {
  35. for(i=0;i<3;i++)
  36. {
  37. if(arr[i][j]=='R')
  38. {
  39. dp[i][j][0]=dp[(i+1)%3][j+1][1]+dp[(i+2)%3][j+1][1];
  40. dp[i][j][1]=dp[(i+1)%3][j+1][0]+dp[(i+2)%3][j+1][0];
  41. }
  42. else
  43. {
  44. dp[i][j][0]=dp[(i+1)%3][j+1][0]+dp[(i+2)%3][j+1][0];
  45. dp[i][j][1]=dp[(i+1)%3][j+1][1]+dp[(i+2)%3][j+1][1];
  46. }
  47. }
  48. }
  49. System.out.println(dp[0][0][0]+dp[1][0][0]+dp[2][0][0]);
  50. }
  51. }
Success #stdin #stdout 0.06s 32872KB
stdin
6
RRRRGB
RGRBBG
GGGRRG
stdout
40