Submission #531159

# Submission time Handle Problem Language Result Execution time Memory
531159 2022-02-27T21:50:26 Z sidon Jump (BOI06_jump) C++17
100 / 100
5 ms 1064 KB
#include <bits/stdc++.h>
using namespace std;

void add(string &x, const string &y) {
	int cur = 0, j = size(y);

	for(int i = 0; i < j || cur; ++i) {
		if(i < j) cur += y[i] - '0';

		if(int(size(x)) == i) x.push_back('0');
		cur += x[i] - '0';
		x[i] = (cur % 10) + '0';
		cur /= 10;
	}
}
 
int main() {
	ios::sync_with_stdio(0), cin.tie(0);
	int n; cin >> n;
 
	int a[n][n];
	string b[n][n];
 
	for(int i = 0; i < n; ++i) {
		for(int j = 0; j < n; ++j) {
			cin >> a[i][j];
			b[i][j] = "0";
		}
	}
 
	b[0][0] = "1";
 
	for(int i = 0; i < n; ++i) {
		for(int j = 0; j < n; ++j) {
			if(i == n-1 && j == n-1) {
				reverse(begin(b[i][j]), end(b[i][j]));
				cout << string(b[i][j]);
			}
 
			if(i + a[i][j] < n)	add(b[i + a[i][j]][j], b[i][j]);
			if(j + a[i][j] < n) add(b[i][j + a[i][j]], b[i][j]);
		}
	}
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
3 Correct 0 ms 204 KB Output is correct
4 Correct 0 ms 204 KB Output is correct
5 Correct 0 ms 204 KB Output is correct
6 Correct 0 ms 204 KB Output is correct
7 Correct 0 ms 204 KB Output is correct
8 Correct 1 ms 332 KB Output is correct
9 Correct 1 ms 332 KB Output is correct
10 Correct 1 ms 204 KB Output is correct
11 Correct 1 ms 332 KB Output is correct
12 Correct 0 ms 332 KB Output is correct
13 Correct 1 ms 332 KB Output is correct
14 Correct 1 ms 332 KB Output is correct
15 Correct 1 ms 460 KB Output is correct
16 Correct 3 ms 716 KB Output is correct
17 Correct 2 ms 588 KB Output is correct
18 Correct 4 ms 844 KB Output is correct
19 Correct 3 ms 716 KB Output is correct
20 Correct 5 ms 1064 KB Output is correct