On the first row, we write a 0. Now in every subsequent row, we look at the previous row and replace each occurrence of 0 with 01, and each occurrence of 1 with 10.
Given row N and index K, return the K-th indexed symbol in row N. (The values of K are 1-indexed.) (1 indexed).
Examples: Input: N = 1, K = 1 Output: 0
Input: N = 2, K = 1 Output: 0
Input: N = 2, K = 2 Output: 1
Input: N = 4, K = 5 Output: 1
Explanation: row 1: 0 row 2: 01 row 3: 0110 row 4: 01101001
Link to the Problem: https://leetcode.com/explore/learn/card/recursion-i/253/conclusion/1675/
Solution:
class Solution {
public:
    int kthGrammar(int N, int K) {
        if(N==0||K==0)
            return 0;
        
        string result="0";
        string finals;
        int i,j;
        for(j=0;j<N-1;j++)
        {
            
            for(i=0;i<result.length();i++)
            {
                if(result[i]=='0')
                    finals.append("01");
                else
                    finals.append("10");
            }
            result=finals;
            
        }
        return result[K-1]-'0';
    }
};
 
     
     
    