# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
728567 | Karpin | Jump (BOI06_jump) | C++17 | 17 ms | 1136 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define vt vector
#define ar array
string amount [105][105];
string sumTwoStrings(string first, string second){
int rem = 0;
string res = "";
reverse(first.begin(), first.end());
reverse(second.begin(), second.end());
for(int i = 0; i < max(first.size(), second.size()); i++){
int cur = rem + (first.size() < i + 1 ? 0 : (first[i] - '0')) + (second.size() < i + 1 ? 0 : (second[i] - '0'));
res += to_string(cur % 10);
rem = cur / 10;
}
if (rem != 0) res += to_string(rem);
reverse(res.begin(), res.end());
return res;
}
void solve(){
int n;
cin >> n;
int grid [n + 5][n + 5];
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
cin >> grid[i][j];
amount[i][j] = "0";
}
}
amount[0][0] = "1";
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
if (i == j && i == n - 1) break;
amount[i + grid[i][j]][j] = sumTwoStrings(amount[i + grid[i][j]][j], amount[i][j]);
amount[i][j + grid[i][j]] = sumTwoStrings(amount[i][j + grid[i][j]], amount[i][j]);
}
}
cout << amount[n - 1][n - 1] << endl;
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
int testcases = 1;
// cin >> testcases;
while(testcases--){
solve();
}
return 0;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |