Submission #948886

# Submission time Handle Problem Language Result Execution time Memory
948886 2024-03-18T15:55:58 Z vin Cijanobakterije (COCI21_cijanobakterije) C++17
27 / 70
33 ms 12888 KB
#include <bits/stdc++.h>
using namespace std;

#define pb push_back
#define mp make_pair
#define ll long long
#define pii pair<int, int>
#define pll pair<ll, ll>

const int INF = 2147483645;
const int maxN = (int)1e5+5;
const ll LLINF = LLONG_MAX;
//const ll mod = 998244353;
const ll mod = 1000000007;

vector<int> adj[maxN];
int dist[maxN];
bool vis[maxN], avis[maxN];

void dfs(int s) {
	vis[s] = true;
	avis[s] = true;
	for (auto i: adj[s]) {
		if (vis[i]) continue;
		vis[i] = true;
		avis[i] = true;
		dist[i] = dist[s]+1;
		dfs(i);
	}
}

void solv() {
	int n, m, a, b;
    cin>>n>>m;
    for (int i=0;i<m;i++) {
        cin>>a>>b;
        adj[a].pb(b);
        adj[b].pb(a);
    }
    dfs(1);
    int mx = 0, start = 1;
    for (int i=1;i<=n;i++) {
        if (dist[i] > mx) {
            mx = dist[i];
            start = i;
        }
    }
    memset(dist, 0, sizeof dist);
    memset(vis, 0, sizeof vis);
    dfs(start);
    mx = 0;
    for (int i=1;i<=n;i++) {
        mx = max(mx, dist[i]);
    }
    if (vis[2]) {
    	for (int i=1;i<=n;i++) if (!avis[i]) mx++;
    	cout<<mx+1<<'\n';
    	return;
	}
    memset(dist, 0, sizeof dist);
    memset(vis, 0, sizeof vis);
    dfs(2);
    int mx2 = 0;
    start = 2;
    for (int i=1;i<=n;i++) {
        if (dist[i] > mx2) {
            mx2 = dist[i];
            start = i;
        }
    }
    memset(dist, 0, sizeof dist);
    memset(vis, 0, sizeof vis);
    dfs(start);
    mx2 = 0;
    for (int i=1;i<=n;i++) {
        mx2 = max(mx2, dist[i]);
    }
    for (int i=1;i<=n;i++) if (!avis[i]) mx++;
    cout<<mx+mx2+2<<'\n';
}

int main() {
    ios::sync_with_stdio(0); cin.tie(0);
    int t=1;
//    cin>>t;
    while (t--) solv();
}
# Verdict Execution time Memory Grader output
1 Correct 5 ms 3676 KB Output is correct
2 Correct 9 ms 4200 KB Output is correct
3 Correct 14 ms 4836 KB Output is correct
4 Correct 23 ms 5812 KB Output is correct
5 Correct 21 ms 5980 KB Output is correct
6 Correct 33 ms 6492 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 26 ms 12888 KB Output is correct
2 Correct 3 ms 3676 KB Output is correct
3 Correct 4 ms 3932 KB Output is correct
4 Correct 6 ms 4696 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 3160 KB Output is correct
2 Correct 2 ms 3164 KB Output is correct
3 Correct 1 ms 3164 KB Output is correct
4 Correct 1 ms 3164 KB Output is correct
5 Correct 3 ms 3676 KB Output is correct
6 Correct 6 ms 4536 KB Output is correct
7 Correct 8 ms 4956 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 3160 KB Output is correct
2 Incorrect 1 ms 3164 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 5 ms 3676 KB Output is correct
2 Correct 9 ms 4200 KB Output is correct
3 Correct 14 ms 4836 KB Output is correct
4 Correct 23 ms 5812 KB Output is correct
5 Correct 21 ms 5980 KB Output is correct
6 Correct 33 ms 6492 KB Output is correct
7 Correct 26 ms 12888 KB Output is correct
8 Correct 3 ms 3676 KB Output is correct
9 Correct 4 ms 3932 KB Output is correct
10 Correct 6 ms 4696 KB Output is correct
11 Correct 1 ms 3160 KB Output is correct
12 Correct 2 ms 3164 KB Output is correct
13 Correct 1 ms 3164 KB Output is correct
14 Correct 1 ms 3164 KB Output is correct
15 Correct 3 ms 3676 KB Output is correct
16 Correct 6 ms 4536 KB Output is correct
17 Correct 8 ms 4956 KB Output is correct
18 Correct 1 ms 3160 KB Output is correct
19 Incorrect 1 ms 3164 KB Output isn't correct
20 Halted 0 ms 0 KB -