๐—–๐—ฆ ๐—”๐—น๐—ด๐—ผ ๐Ÿ’ป ๐ŸŒ ใ€Ž๐—–๐—ผ๐—บ๐—ฝ๐—ฒ๐˜๐—ถ๐˜๐—ถ๐˜ƒ๐—ฒ ๐—ฃ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ดใ€
9.55K subscribers
5.58K photos
3 videos
95 files
9.9K links
๐ŸšฉMain Group - @SuperExams
๐Ÿ“Job Updates - @FresherEarth

๐Ÿ”ฐAuthentic Coding Solutions(with Outputs)
โš ๏ธDaily Job Updates
โš ๏ธHackathon Updates & Solutions

Buy ads: https://telega.io/c/cs_algo
Download Telegram
๐—–๐—ฆ ๐—”๐—น๐—ด๐—ผ ๐Ÿ’ป ๐ŸŒ ใ€Ž๐—–๐—ผ๐—บ๐—ฝ๐—ฒ๐˜๐—ถ๐˜๐—ถ๐˜ƒ๐—ฒ ๐—ฃ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ดใ€
Photo
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int bfs(vector<vector<int>> &g, int n, int m, int x, int y, vector<vector<int>> &d) {
    queue<pair<int, int>> q;
    q.push(make_pair(x, y));
    d[x][y] = 0;
    int dx[] = {-1, 1, 0, 0}, dy[] = {0, 0, -1, 1};

    while (!q.empty()) {
        pair<int, int> p = q.front();
        q.pop();
        int cx = p.first, cy = p.second;

        for (int i = 0; i < 4; i++) {
            int nx = cx + dx[i], ny = cy + dy[i];
            if (nx >= 0 && ny >= 0 && nx < n && ny < m && d[nx][ny] == 1e9) {
                d[nx][ny] = d[cx][cy] + 2;
                q.push(make_pair(nx, ny));
            }
        }
    }
    return 0;
}

int minDays(vector<vector<int>> &g, int n, int m) {
    vector<pair<int, int>> s;
    for (int i = 0; i < n; i++)
        for (int j = 0; j < m; j++)
            if (g[i][j] > 0) s.push_back(make_pair(i, j));

    if (s.empty()) return 0;

    vector<vector<int>> d(n, vector<int>(m, 1e9));
    bfs(g, n, m, s[0].first, s[0].second, d);

    int t = g[s[0].first][s[0].second];
    for (int i = 1; i < s.size(); i++) {
        t += d[s[i].first][s[i].second] + g[s[i].first][s[i].second];
        fill(d.begin(), d.end(), vector<int>(m, 1e9));
        bfs(g, n, m, s[i].first, s[i].second, d);
    }
    return (t + 7) / 8;
}

int main() {
    int n, m;
    cin >> n >> m;
    vector<vector<int>> g(n, vector<int>(m));
    for (int i = 0; i < n; i++)
        for (int j = 0; j < m; j++)
            cin >> g[i][j];
    cout << minDays(g, n, m) << endl;
}


Nucleus โœ…
๐—–๐—ฆ ๐—”๐—น๐—ด๐—ผ ๐Ÿ’ป ๐ŸŒ ใ€Ž๐—–๐—ผ๐—บ๐—ฝ๐—ฒ๐˜๐—ถ๐˜๐—ถ๐˜ƒ๐—ฒ ๐—ฃ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ดใ€
Photo
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int kthP(int k) {
    vector<bool> p(10000, true);
    p[0] = p[1] = false;
    vector<int> ps;
    for (int i = 2; i < 10000; i++) {
    if (p[i]) {
    ps.push_back(i);
    for (int j = i * 2; j < 10000; j += i)
    p[j] = false;
        }
    }
    return ps[k - 1];
}

int bfs(int s, vector<vector<int>> &adj, vector<bool> &vis) {
    queue<int> q;
    q.push(s);
    vis[s] = true;
    int c = 0;
    while (!q.empty()) {
    int u = q.front();
    q.pop();
    c++;
    for (int v : adj[u]) {
    if (!vis[v]) {
    vis[v] = true;
    q.push(v);
            }
        }
    }
    return c;
}
int main() {
    int a, b;
    cin >> a >> b;
    vector<vector<int>> adj(a + 1);
    for (int i = 0; i < b; i++) {
        int c, d;
        cin >> c >> d;
        adj[c].push_back(d);
        adj[d].push_back(c);
    }

    vector<bool> vis(a + 1, false);
    int mx = 0;
    for (int i = 1; i <= a; i++) {
    if (!vis[i]) {
    mx = max(mx, bfs(i, adj, vis));
        }
    }

    cout << mx << " " << kthP(mx) << endl;
    return 0;
}

Nucleus โœ