Cod sursa(job #1710310)

Utilizator HealeruDaniel Guramulta Healeru Data 28 mai 2016 19:34:50
Problema Padure2 Scor 0
Compilator cpp Status done
Runda Arhiva ICPC Marime 1.42 kb
#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;

}