Skip to content

Instantly share code, notes, and snippets.

View SuryaPratapK's full-sized avatar

Surya Pratap SuryaPratapK

  • Durgapur
View GitHub Profile
class Solution {
#define pii pair<int,int>
static constexpr int dir[5] = {-1,0,1,0,-1};
public:
vector<vector<int>> colorGrid(int n, int m, vector<vector<int>>& sources) {
sort(sources.begin(),sources.end(),[](const vector<int>& a,const vector<int>& b){
return a[2]>b[2];
});
vector<vector<int>> grid(n,vector<int>(m));
queue<pii> q;
class Solution {
int findLongest(string& s){
int n=s.size();
int ones=0,zeroes=0;
for(int i=0;i<n;++i){
if(s[i]=='1') ones++;
else zeroes++;
}
int longest = 0;
int balance = 0;
class Solution {
struct DSU{
vector<int> parent;
DSU(int n) : parent(n,-1) {}
int Find(int v) {
if(parent[v] == -1)
return v;
return parent[v] = Find(parent[v]);
}
void Union(int u,int v){
class Solution {
int rowSum(vector<vector<int>>& grid,int& row,int& col){
int rowSum = grid[row][col] + grid[row][col+1] + grid[row][col+2];
if(rowSum != grid[row+1][col] + grid[row+1][col+1] + grid[row+1][col+2] or
rowSum != grid[row+2][col] + grid[row+2][col+1] + grid[row+2][col+2])
return -1;
return rowSum;
}
int colSum(vector<vector<int>>& grid,int& row,int& col){
int colSum = grid[row][col] + grid[row+1][col] + grid[row+2][col];
class Solution {
unordered_map<string,bool> memo;
bool buildPyramid(string& bottom,string curr,int pos,int n,unordered_map<string,vector<char>>& trio){
if(n==0) return true;//Built Pyramid
if(pos >= n){//Finished current row
if(memo.count(curr)) return memo[curr];
return memo[curr] = buildPyramid(curr,"",0,n-1,trio);
}
//2 Pass: Exact Penalty Solution
class Solution {
public:
int bestClosingTime(string customers) {
int n = customers.size();
int closed_penalty = 0;
for(int i=0;i<n;++i)
if(customers[i]=='Y')
closed_penalty++;
class Solution {
using ll = long long;
public:
long long maximumHappinessSum(vector<int>& happiness, int k) {
ll sum = 0;
priority_queue<int> maxheap(happiness.begin(),happiness.end());
int decrease = 0;
while(k--){
sum += maxheap.top();
class Spreadsheet {
using pii = pair<int,int>;
vector<vector<int>> sheet;
pii getRowCol(string cell){
int pos = 0;
int col = -1;
if(cell[0]>='A' and cell[0]<='Z'){
col = cell[0]-'A';
pos++;
class TaskManager {
using pii = pair<int,int>;
priority_queue<pii> maxheap;
unordered_map<int,pii> tid_priority_uid;
public:
TaskManager(vector<vector<int>>& tasks) {
for(auto& task: tasks){
maxheap.push({task[2],task[1]});
tid_priority_uid[task[1]] = {task[2],task[0]};
}
class FoodRatings {
#define pis pair<int,string>
struct compare {
bool operator()(const pis& a, const pis& b) const {
if (a.first != b.first)
return a.first < b.first; // higher rating = higher priority
return a.second > b.second; // lexicographically smaller name = higher priority
}
};