Submission #1105361

# Submission time Handle Problem Language Result Execution time Memory
1105361 2024-10-26T08:37:42 Z monaxia Hotspot (NOI17_hotspot) C++17
9 / 100
74 ms 41040 KB
// credit: Mai Hong Kien

#include <bits/stdc++.h>
#define pb push_back
#define ppb pop_back
#define fr first
#define sc second
#define all(v) v.begin(), v.end()
#define mod (long long)(1e9 + 7)
#define eps (long long)(1e-9)
using namespace std;
 
using ll = long long;
using ull = unsigned long long;
using ld = long double;
ll LIMIT = 2e3 + 5;

mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
ll random (ll l, ll r){return uniform_int_distribution <ll> (l, r)(rng);}


void solve(){
    ll n, m;
    long double mx = 0, res = 0;
    cin >> n >> m;

    vector <vector <ll>> graph(n + 1), dist(n + 1, vector <ll> (n + 1, INT_MAX)), path(n + 1, vector <ll> (m + 1, 0));
    vector <long double> e(n + 1, 0);
    vector <pair <ll, ll>> range;

    for(ll i = 1; i <= m; i ++){
        ll u, v;
        cin >> u >> v;

        graph[u].pb(v);
        graph[v].pb(u);
    }

    for(ll i = 0; i < n; i ++){
        dist[i][i] = 0;
        path[i][i] = 1;

        vector <ll> v(n + 1, 0);
        queue <ll> q;

        q.push(i);

        while(!q.empty()){
            ll s = q.front();
            for(auto& x : graph[s]){
                if(dist[i][x] > dist[i][s] + 1) {
                    dist[i][x] = dist[i][s] + 1;
                    path[i][x] = path[i][s];
                } 

                else if(dist[i][x] == dist[i][s] + 1) path[i][x] += path[i][s];

                if(v[x]) continue;
                v[x] = 1;
                q.push(x);
            }

            q.pop();
        }
    }

    ll k;
    cin >> k;

    for(ll i = 1; i <= k; i ++){
        ll u, v;
        cin >> u >> v;

        range.pb({u, v});
    }

    for(ll i = 0; i < n; i ++){
        for(auto& x : range){
            if(dist[i][x.fr] + dist[i][x.sc] > dist[x.fr][x.sc]) continue;
            int val = ld(dist[i][x.fr] * dist[i][x.sc]) / ld(dist[x.fr][x.sc]);
            if(!val) e[i] ++;
            else e[i] += val;
            // cout << x.fr << " " << x.sc << " " << ld(dist[i][x.fr] * dist[i][x.sc]) / ld(dist[x.fr][x.sc]) << "\n";
        }

        if(e[i] > mx) mx = e[i], res = i;
        // cout << e[i] << " ";
        // cout << "\n";
    }

    cout << res;
}


signed main()
{
    // cin.tie(0)->sync_with_stdio(0);
 
    if(fopen("TOY.inp", "r")){
        freopen("TOY.inp", "r", stdin);
        freopen("TOY.out", "w", stdout);
    }
    
    // cout << 1; return 0;

    ll n = 1;

    // cin >> n;

    while(n) {
        solve();
        n --;
        cout << "\n";
    }
 
    // cerr << "Time elapsed: " << 1.0 * clock() / CLOCKS_PER_SEC << " s.\n";
}

Compilation message

hotspot.cpp: In function 'int main()':
hotspot.cpp:100:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
  100 |         freopen("TOY.inp", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
hotspot.cpp:101:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
  101 |         freopen("TOY.out", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 7 ms 4688 KB Output is correct
2 Correct 17 ms 10576 KB Output is correct
3 Correct 13 ms 9040 KB Output is correct
4 Correct 1 ms 336 KB Output is correct
5 Correct 3 ms 2040 KB Output is correct
6 Correct 2 ms 1360 KB Output is correct
7 Correct 6 ms 4688 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 7 ms 4688 KB Output is correct
2 Correct 17 ms 10576 KB Output is correct
3 Correct 13 ms 9040 KB Output is correct
4 Correct 1 ms 336 KB Output is correct
5 Correct 3 ms 2040 KB Output is correct
6 Correct 2 ms 1360 KB Output is correct
7 Correct 6 ms 4688 KB Output is correct
8 Correct 2 ms 1360 KB Output is correct
9 Correct 7 ms 5172 KB Output is correct
10 Correct 16 ms 11088 KB Output is correct
11 Correct 1 ms 592 KB Output is correct
12 Correct 1 ms 336 KB Output is correct
13 Correct 3 ms 2300 KB Output is correct
14 Correct 9 ms 6224 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 7 ms 4688 KB Output is correct
2 Correct 17 ms 10576 KB Output is correct
3 Correct 13 ms 9040 KB Output is correct
4 Correct 1 ms 336 KB Output is correct
5 Correct 3 ms 2040 KB Output is correct
6 Correct 2 ms 1360 KB Output is correct
7 Correct 6 ms 4688 KB Output is correct
8 Incorrect 3 ms 2128 KB Output isn't correct
9 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 7 ms 4688 KB Output is correct
2 Correct 17 ms 10576 KB Output is correct
3 Correct 13 ms 9040 KB Output is correct
4 Correct 1 ms 336 KB Output is correct
5 Correct 3 ms 2040 KB Output is correct
6 Correct 2 ms 1360 KB Output is correct
7 Correct 6 ms 4688 KB Output is correct
8 Correct 2 ms 1360 KB Output is correct
9 Correct 7 ms 5172 KB Output is correct
10 Correct 16 ms 11088 KB Output is correct
11 Correct 1 ms 592 KB Output is correct
12 Correct 1 ms 336 KB Output is correct
13 Correct 3 ms 2300 KB Output is correct
14 Correct 9 ms 6224 KB Output is correct
15 Incorrect 3 ms 2128 KB Output isn't correct
16 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 7 ms 4688 KB Output is correct
2 Correct 17 ms 10576 KB Output is correct
3 Correct 13 ms 9040 KB Output is correct
4 Correct 1 ms 336 KB Output is correct
5 Correct 3 ms 2040 KB Output is correct
6 Correct 2 ms 1360 KB Output is correct
7 Correct 6 ms 4688 KB Output is correct
8 Correct 2 ms 1360 KB Output is correct
9 Correct 7 ms 5172 KB Output is correct
10 Correct 16 ms 11088 KB Output is correct
11 Correct 1 ms 592 KB Output is correct
12 Correct 1 ms 336 KB Output is correct
13 Correct 3 ms 2300 KB Output is correct
14 Correct 9 ms 6224 KB Output is correct
15 Correct 15 ms 8644 KB Output is correct
16 Correct 19 ms 10832 KB Output is correct
17 Correct 74 ms 41040 KB Output is correct
18 Incorrect 29 ms 15440 KB Output isn't correct
19 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 7 ms 4688 KB Output is correct
2 Correct 17 ms 10576 KB Output is correct
3 Correct 13 ms 9040 KB Output is correct
4 Correct 1 ms 336 KB Output is correct
5 Correct 3 ms 2040 KB Output is correct
6 Correct 2 ms 1360 KB Output is correct
7 Correct 6 ms 4688 KB Output is correct
8 Correct 2 ms 1360 KB Output is correct
9 Correct 7 ms 5172 KB Output is correct
10 Correct 16 ms 11088 KB Output is correct
11 Correct 1 ms 592 KB Output is correct
12 Correct 1 ms 336 KB Output is correct
13 Correct 3 ms 2300 KB Output is correct
14 Correct 9 ms 6224 KB Output is correct
15 Incorrect 3 ms 2128 KB Output isn't correct
16 Halted 0 ms 0 KB -