# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
40712 | IvanC | Jakarta Skyscrapers (APIO15_skyscraper) | C++14 | 521 ms | 38724 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <cstdio>
#include <cstring>
#include <vector>
#include <queue>
#define MAXN 2010
#define MP make_pair
using namespace std;
typedef pair<int,int> ii;
int grafo[MAXN][MAXN];
int origem,destino,n,m,processado[MAXN];
int main(){
memset(grafo,-1,sizeof(grafo));
scanf("%d %d",&n,&m);
n--;
for(int i=0;i<m;i++){
int ini,percorre;
scanf("%d %d",&ini,&percorre);
if(i == 0) origem = ini;
if(i == 1){
destino = ini;
continue;
}
for(int j = 1;ini - percorre*j >= 0;j++){
if(grafo[ini][ini - percorre*j] == -1){
grafo[ini][ini - percorre*j] = j;
}
else{
grafo[ini][ini - percorre*j] = min(j,grafo[ini][ini - percorre*j]);
}
}
for(int j = 1;ini + percorre*j <= n;j++){
if(grafo[ini][ini + percorre*j] == -1){
grafo[ini][ini + percorre*j] = j;
}
else{
grafo[ini][ini + percorre*j] = min(j,grafo[ini][ini + percorre*j]);
}
}
}
priority_queue<ii, vector<ii> , greater<ii> > Dijkstra;
Dijkstra.push(MP(0,origem));
while(!Dijkstra.empty()){
ii davez = Dijkstra.top();
Dijkstra.pop();
int v = davez.second, percorrido = davez.first;
if(processado[v]) continue;
processado[v] = 1;
if(v == destino ){
printf("%d\n",percorrido);
return 0;
}
for(int i=0;i<=n;i++){
if(!processado[i] && grafo[v][i] != -1){
Dijkstra.push(MP(percorrido + grafo[v][i],i));
}
}
}
printf("-1\n");
return 0;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |