Submission #1301416

#TimeUsernameProblemLanguageResultExecution timeMemory
1301416StefanSebez철도 요금 (JOI16_ho_t3)C++20
100 / 100
105 ms18768 KiB
#include <bits/stdc++.h> using namespace std; #define fi first #define se second #define pb push_back #define ll long long #define ld long double #define mp make_pair const int N=1e5+50,inf=1e9; vector<int>E[N],E1[N]; bool active[N]; int num=1; void DFS(int u){ if(!active[u])num++;active[u]=true; for(auto i:E1[u]) DFS(i); E1[u].clear(); } int main(){ int n,m,q;scanf("%i%i%i",&n,&m,&q); pair<int,int>edges[m+10]; for(int i=1;i<=m;i++){ int u,v; scanf("%i%i",&u,&v); E[u].pb(v),E[v].pb(u); edges[i]={u,v}; } vector<int>ind;bool ubacen[m+10]={0}; for(int i=0;i<q;i++){ int j;scanf("%i",&j); ind.pb(j);ubacen[j]=true; } for(int i=1;i<=m;i++)if(!ubacen[i])ind.pb(i); reverse(ind.begin(),ind.end()); int dist[n+10];for(int i=1;i<=n;i++)dist[i]=inf; queue<int>kju;dist[1]=0;kju.push(1); while(!kju.empty()){ int u=kju.front();kju.pop(); for(auto i:E[u])if(dist[i]>dist[u]+1)dist[i]=dist[u]+1,kju.push(i); } vector<int>res; active[1]=true; for(auto I:ind){ res.pb(n-num); auto [u,v]=edges[I]; if(dist[u]>dist[v])swap(u,v); if(dist[v]==dist[u]+1){ E1[u].pb(v); if(active[u]&&!active[v]) DFS(u); } } reverse(res.begin(),res.end()); res.resize(q); for(auto i:res) printf("%i\n",i); return 0; }

Compilation message (stderr)

2016_ho_t3.cpp: In function 'int main()':
2016_ho_t3.cpp:19:20: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   19 |     int n,m,q;scanf("%i%i%i",&n,&m,&q);
      |               ~~~~~^~~~~~~~~~~~~~~~~~~
2016_ho_t3.cpp:23:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   23 |         scanf("%i%i",&u,&v);
      |         ~~~~~^~~~~~~~~~~~~~
2016_ho_t3.cpp:29:20: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   29 |         int j;scanf("%i",&j);
      |               ~~~~~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...