Cod sursa(job #1993354)

Utilizator DEFINEtelyEngineersUPB Pirtoaca Vasilescu Zamfiratos DEFINEtelyEngineers Data 22 iunie 2017 18:48:23
Problema Subsir Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <iostream>
#include <set>
#include <vector>
#include <iomanip>
#include <fstream>
#include <algorithm>
using namespace std;

string a, b;
int dp[505][505];


void read() {
    cin >> a >> b;
    int n = a.size();
    int m = b.size();
    for(int i = 1; i <= n; i++) {
        for(int j = 1; j <= n; j++) {
            if(a[i - 1] == b[j - 1]) {
                if((i - 1) && (j - 1)) {
                    if(dp[i - 1][j -  1] == 0) {
                        dp[i][j] = 1;
                    } else {
                        dp[i][j] = dp[i - 1][j - 1];
                    }
                } else {
                    dp[i][j] = 1;
                }
            } else {
                dp[i][j] = dp[i - 1][j] + dp[i][j - 1] - dp[i - 1][j - 1];
            }
        }
    }
    for(int i = 1; i <= n; i++) {
        for(int j = 1; j <= m; j++) {
            cout << dp[i][j] << "    " << i << "    " << j << endl;
        }
    }
    cout << dp[n][m];
}
int main() {

    read();
    return 0;
}