Submission #955019

#TimeUsernameProblemLanguageResultExecution timeMemory
955019AbitoCyberland (APIO23_cyberland)C++17
Compilation error
0 ms0 KiB
#include "cyberland.h" #include <bits/stdc++.h> #define F first #define S second #define elif else if #define pb push_back using namespace std; const int N=1e5+5; int n,m,k,a[N]; double dis[N][35]; vector<pair<int,int>> adj[N]; bool vis[N][35]; void dijkstra(){ priority_queue<pair<double,pair<int,int>>> pq; pq.push({0,{0,0}}); for (int i=0;i<n;i++) for (int j=0;j<=k;j++) dis[i][j]=-1; dis[0][0]=0; while (!pq.empty()){ int x=pq.top().S.F,y=pq.top().S.S; pq.pop(); if (vis[x][y]) continue; vis[x][y]=1; for (auto u:adj[x]){ if (dis[u.F][y]<0 || dis[u.F][y]>dis[x][y]+double(u.S)){ dis[u.F][y]=dis[x][y]+double(u.S); pq.push({-dis[u.F][y],{u.F,y}}); } if (!a[u.F]){ dis[u.F][y]=0; pq.push({0,{u.F,y}}); } elif (a[u.F]==2 && y+1<=k){ int nd=(dis[x][y]+double(u.S))/2.0; if (dis[u.F][y+1]<0 || dis[u.F][y+1]>nd){ dis[u.F][y+1]=nd; pq.push({-nd,{u.F,y+1}}); } } } }return; } double solve(int N, int M, int K, int H, std::vector<int> x, std::vector<int> y, std::vector<int> c, std::vector<int> arr) { n=N;m=M;k=K; for (int i=0;i<n;i++) vis[i]=0,adj[i].clear(); for (int i=0;i<m;i++){ adj[x[i]].pb({y[i],c[i]}); adj[y[i]].pb({x[i],c[i]}); } for (int i=0;i<n;i++) a[i]=arr[i]; dijkstra(); double ans=dis[H][0]; for (int i=1;i<=k;i++){ if (dis[H][i]<0) continue; ans=min(ans,dis[H][i]); }return ans; }

Compilation message (stderr)

cyberland.cpp: In function 'double solve(int, int, int, int, std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>)':
cyberland.cpp:44:33: error: incompatible types in assignment of 'int' to 'bool [35]'
   44 |     for (int i=0;i<n;i++) vis[i]=0,adj[i].clear();
      |                           ~~~~~~^~