Submission #426618

# Submission time Handle Problem Language Result Execution time Memory
426618 2021-06-14T07:57:25 Z TLP39 Hotspot (NOI17_hotspot) C++17
Compilation error
0 ms 0 KB
#include<bits/stdc++.h>
using namespace std;
typedef pair<int,pair<int,int>> pii;

int n,m,k;
vector<int> adj[5003];
int shortest_path[2][5003];
int num_shortest_path[2][5003];
bool marked[2][5003];
double final[5003];

void bfs(int a,int pos)
{
  for(int i=0;i<n;i++) 
  {
    marked[pos][i]=false;
    shortest_path[pos][i]=1000000;
    num_shortest_path[pos][i]=0;
  }
  queue<int> q;
  int temp;
  q.push(a);
  marked[pos][a]=true;
  shortest_path[pos][a]=0;
  num_shortest_path[pos][a]=1;
  while(!q.empty())
  {
   	temp=q.front();
    q.pop();
    for(int i=0;i<adj[temp].size();i++)
    {
       	if(shortest_path[pos][adj[temp][i]]<=shortest_path[pos][temp]) continue;
        if(!marked[pos][adj[temp][i]])
        {
          marked[pos][adj[temp][i]]=true;
          shortest_path[pos][adj[temp][i]]=shortest_path[pos][temp]+1;
          q.push(adj[temp][i]);
        }
        num_shortest_path[pos][adj[temp][i]]+=num_shortest_path[pos][temp];
     }
  }
}

int main()
{
  scanf("%d %d",&n,&m);
  int u,v;
  for(int i=0;i<m;i++)
  {
    scanf("%d %d",&u,&v);
    adj[u].push_back(v);
    adj[v].push_back(u);
  }
  for(int i=0;i<n;i++) final[i]=(double)0;
  scanf("%d",&k);
  while(k--)
  {
    scanf("%d %d",&u,&v);
    dfs(u,0);
    dfs(v,1);
    for(int i=0;i<n;i++)
    {
      if(shortest_path[0][v]!=shortest_path[0][i]+shortest_path[1][i]) continue;
      final[i]+=((double)(num_shortest_path[0][i]*num_shortest_path[1][i]))/((double)(num_shortest_path[0][v]));
    }
  }
  double maxi=(double)(-1);
  int posi=-1;
  for(int i=0;i<n;i++)
  {
    if(final[i]>maxi)
    {
      maxi=final[i];
      posi=i;
    }
  }
  printf("%d",i);
}

Compilation message

hotspot.cpp: In function 'void bfs(int, int)':
hotspot.cpp:30:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   30 |     for(int i=0;i<adj[temp].size();i++)
      |                 ~^~~~~~~~~~~~~~~~~
hotspot.cpp: In function 'int main()':
hotspot.cpp:59:5: error: 'dfs' was not declared in this scope; did you mean 'bfs'?
   59 |     dfs(u,0);
      |     ^~~
      |     bfs
hotspot.cpp:77:15: error: 'i' was not declared in this scope
   77 |   printf("%d",i);
      |               ^
hotspot.cpp:46:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   46 |   scanf("%d %d",&n,&m);
      |   ~~~~~^~~~~~~~~~~~~~~
hotspot.cpp:50:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   50 |     scanf("%d %d",&u,&v);
      |     ~~~~~^~~~~~~~~~~~~~~
hotspot.cpp:55:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   55 |   scanf("%d",&k);
      |   ~~~~~^~~~~~~~~
hotspot.cpp:58:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   58 |     scanf("%d %d",&u,&v);
      |     ~~~~~^~~~~~~~~~~~~~~