CSES - HIIT Open 2019 - Results
Submission details
Task:Grid Paths
Sender:bits pls
Submission time:2019-05-25 15:55:54 +0300
Language:C++
Status:READY
Result:
Test results
testverdicttime
#1--details

Compiler report

input/code.cpp: In function 'int solve(int, int, std::vector<std::vector<int> >&)':
input/code.cpp:8:11: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     if (i >= nums.size() || j >= nums[0].size()) {
         ~~^~~~~~~~~~~~~~
input/code.cpp:8:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     if (i >= nums.size() || j >= nums[0].size()) {
                             ~~^~~~~~~~~~~~~~~~~
input/code.cpp:9:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         if (i == nums.size() && j == nums[0].size() - 1 || i == nums.size() - 1 && j == nums.size()) {
             ~~^~~~~~~~~~~~~~
input/code.cpp:9:35: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         if (i == nums.size() && j == nums[0].size() - 1 || i == nums.size() - 1 && j == nums.size()) {
                                 ~~^~~~~~~~~~~~~~~~~~~~~
input/code.cpp:9:6...

Code

#include <iostream>
#include <vector>

using namespace std;


int solve(int i, int j, vector< vector<int> > &nums) {
    if (i >= nums.size() || j >= nums[0].size()) {
        if (i == nums.size() && j == nums[0].size() - 1 || i == nums.size() - 1 && j == nums.size()) {
            return nums[nums.size()-1][nums.size()-1];
        }
        return 0;
    }


    int curr = nums[i][j];
    //cout << i << " " << j << " curr: "<< curr << endl;
    int a = solve(i, j+1, nums);
    //cout << i << " " << j << " a: "<< a << endl;
    int sum = 0;
    if (a > 0) {
        sum += curr + a;
    }
    int b = solve(i+1, j, nums);
    //cout << i << " " << j << " b: "<< b << endl;
    if (b > 0) {
        sum += curr + b;
    }
    return sum;
}


int main()
{
    int n;
    cin >> n;

    vector< vector<int> > nums;
    int num;
    for (int i = 0; i < n; i++) {
        vector<int> row;
        for (int j = 0; j < n; j++) {
            cin >> num;
            row.push_back(num);
        }
        nums.push_back(row);
    }
    cout << (solve(0, 1, nums) + solve(1, 0, nums))/(n-1) << endl;
}

Test details

Test 1

Verdict:

input
100
606755118 96655535 664126532 4...

correct output
530182530

user output
(empty)