Link: https://www.hackerrank.com/contests/30-days-of-code/challenges/day-11-more-review
Chương trình như thế này:
#include <vector>
#include <iostream>
using namespace std;
int main(){
int arr[6][6];
std::vector <int> sum;
int i,j,max=0;
for(int i=0;i<6;i++)
{
for(int j=0;j<6;j++)
{
cin >> arr[i][j];
}
}
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
sum.push_back(arr[i][j]+arr[i][j+1]+arr[i][j+2]+arr[i+1][j+1]+arr[i+2][j]+arr[i+2][j+1]+arr[i+2][j+2]);
}
}
sort(sum.begin(),sum.end());
cout << *(sum.end()-1);
return 0;
}
Ở dòng cout << *(sum.end()-1):tại sao phải dùng sum.end()-1 thì mới ra đúng kết quả,còn sum.end() thì chương trình xuất kết quả là 0.
int main(){
int arr[6][6];
int i,j,a,b,sum=0,max=0;
for(int i=0;i<6;i++)
{
for(int j=0;j<6;j++)
{
cin >> arr[i][j];
}
}
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
sum=0;
sum=arr[i][j]+arr[i][j+1]+arr[i][j+2]+arr[i+1][j+1]+arr[i+2][j]+arr[i+2][j+1]+arr[i+2][j+2];
if(sum>max|| i == 0 && j == 0)
max=sum;
}
}
cout << max;
return 0;
}
Mình phải dùng i == 0 && j == 0,nếu không có nó thì 2 case đưa ra kết quả sai.Các bạn giúp mình với,cảm ơn nhiều.