HackerEarth Image Smoothing problem solution YASH PAL, 31 July 2024 In this HackerEarth Image Smoothing, problem-solution Smoothing is used to reduce noise within an image or to produce a less pixelated image. You have been given an image G of resolution N x N. Image will be represented as a 2D grid G of size N x N where Gij will denote intensity of color in a grayscale image of pixel (i,j). You have been given a filter mask F of size (2 * M + 1) x (2 * M + 1). Using this filter mask, you have to perform a smoothing operation on the G and output the final image NewG. Smoothing operation for any particular pixel (i,j) can be described in the formula. HackerEarth Image Smoothing problem solution. #include<bits/stdc++.h>using namespace std;#define ll long long#define fre freopen("in.txt","r",stdin)#define pii pair<pair<int,int>, int>#define f first#define s second#define rep(i,n) for(int i=0;i<n;i++)#define pb push_backint I[111][111];int Ip[111][111];int N,M;bool valid(int i,int j) { if(i>=1 and i<=N and j>=1 and j<=N) return 1; return 0;}int main() { freopen("in04.txt","r",stdin); freopen("out04.txt","w",stdout); int x; cin >> N >> M; map<pair<int,int>,int >F; for(int i=-M;i<=M;i++) { for(int j=-M;j<=M;j++) { cin >> x; F[{i,j}] = x; } } for(int i=1;i<=N;i++) { for(int j=1;j<=N;j++) { cin >> I[i][j]; } } for(int i=1;i<=N;i++) { for(int j=1;j<=N;j++) { for(int p=-M;p<=M;p++) { for(int q=-M;q<=M;q++) { if(valid(i+p,j+q)) Ip[i][j]+=I[i+p][j+q]*F[{p,q}]; } } } } for(int i=1;i<=N;i++) { for(int j=1;j<=N;j++) { cout << Ip[i][j] << " "; } cout << "n"; }} Second solution #pragma GCC optimize("O3")#define _CRT_SECURE_NO_WARNINGS#include <fstream>#include <iostream>#include <string>#include <complex>#include <math.h>#include <set>#include <vector>#include <map>#include <queue>#include <stdio.h>#include <stack>#include <algorithm>#include <list>#include <ctime>#include <memory.h>#include <assert.h>#define y0 sdkfaslhagaklsldk#define y1 aasdfasdfasdf#define yn askfhwqriuperikldjk#define j1 assdgsdgasghsf#define tm sdfjahlfasfh#define lr asgasgash#define norm asdfasdgasdgsd#define have adsgagshdshfhds#define ends asdgahhfdsfshdshfd#define eps 1e-11#define M_PI 3.141592653589793#define bs 1000000007#define bsize 512#define ldouble long doubleusing namespace std;long long INF = 1e9;const int N = 1001;int n,m,board[N][N],coef[N][N];int get(int a,int b){ if (a<0||b<0) return 0; return board[a][b];}int main(){ ios_base::sync_with_stdio(0); //cin.tie(0); cin>>n>>m; for (int i=0;i<=m*2;i++) { for (int j=0;j<=m*2;j++) { assert(cin>>coef[i][j]); } } for (int i=1;i<=n;i++) { for (int j=1;j<=n;j++) { assert(cin>>board[i][j]); } } for (int i=1;i<=n;i++) { for (int j=1;j<=n;j++) { int here=0; for (int q=0;q<=m*2;q++) { for (int w=0;w<=m*2;w++) { here+=get(i-m+q,j-m+w)*coef[q][w]; } } if (j>1) cout<<" "; cout<<here; } cout<<endl; } cin.get(); cin.get(); return 0;} coding problems