Pagini recente » Cod sursa (job #1823332) | Cod sursa (job #1787296) | Cod sursa (job #533367) | Cod sursa (job #246418) | Cod sursa (job #1710310)
#include <fstream>
#include <vector>
#include <map>
#include <iostream>
using namespace std;
const int MOD = 2000003;
int N, M, Clen;
//map<pair<int, int>, int> currentPosible;
int dp[10001][1001];
/*
int isInMap(int x, int y) {
map<pair<int,int>, int>::iterator it;
for (it = currentPosible.begin(); it != currentPosible.end(); ++it) {
if (it->first.first == x && it->first.second == y)
return 1;
}
return 0;
}*/
int solve2() {
for (int i = 2; i <= N; ++i)
for (int j = 2; j <= M; ++j)
if(dp[i][j] != 0)
{
dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
//cout << "dp[" << i << "][" << j << "] = " << dp[i][j] << endl;
}
return dp[N][M];
}
/*int solve(int x, int y) {
if (x == 1 && y == 1) {
return 1;
}
if (x < 1 || y < 1) {
return 0;
}
if (!isInMap(x, y)) {
currentPosible[make_pair(x, y)] = (solve(x - 1, y) + solve(x, y - 1)) % MOD;
}
return currentPosible[make_pair(x, y)];
}*/
void read() {
ifstream in("padure2.in");
for (int i = 1; i <= 1000; ++i)
for (int j = 1; j <= 1000; ++j)
dp[i][j] = -1;
for (int i = 1; i <= 1000; ++i)
dp[1][i] = 1, dp[i][1] = 1;
in >> N >> M;
in >> Clen;
int x, y;
while(in>>x>>y) {
//currentPosible[make_pair(x, y)] = 0;
dp[x][y] = 0;
}
in.close();
}
int main() {
read();
ofstream out("padure2.out");
//out << solve(N, M);
out << solve2();
return 0;
}