https://www.hackerrank.com/challenges/30-2d-arrays/problem
Mind negative numbers!!
I initialized 'max' as -99, but you can use another way that sorting arr_sum( and get the biggest number).
*/
#include <map>
#include <set>
#include <list>
#include <cmath>
#include <ctime>
#include <deque>
#include <queue>
#include <stack>
#include <string>
#include <bitset>
#include <cstdio>
#include <limits>
#include <vector>
#include <climits>
#include <cstring>
#include <cstdlib>
#include <fstream>
#include <numeric>
#include <sstream>
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
vector< vector<int> > arr(6,vector<int>(6));
for(int arr_i = 0;arr_i < 6;arr_i++){
for(int arr_j = 0;arr_j < 6;arr_j++){
cin >> arr[arr_i][arr_j];
}
}
vector< vector<int> > arr_sum(4, vector<int>(4));
int max = -99; //Do not initialize 'max' as 0. It would be wrong when the values are negative.
for(int arr_i = 0;arr_i < 4;arr_i++){
for(int arr_j = 0; arr_j < 4; arr_j++){
arr_sum[arr_i][arr_j] = 0;
arr_sum[arr_i][arr_j] += arr[arr_i][arr_j];
arr_sum[arr_i][arr_j] += arr[arr_i][arr_j+1];
arr_sum[arr_i][arr_j] += arr[arr_i][arr_j+2];
arr_sum[arr_i][arr_j] += arr[arr_i+1][arr_j+1];
arr_sum[arr_i][arr_j] += arr[arr_i+2][arr_j];
arr_sum[arr_i][arr_j] += arr[arr_i+2][arr_j+1];
arr_sum[arr_i][arr_j] += arr[arr_i+2][arr_j+2];
if(max < arr_sum[arr_i][arr_j]){
max = arr_sum[arr_i][arr_j];
}
}
}
cout << max;
return 0;
}
댓글 없음:
댓글 쓰기