Submission #749885

# Submission time Handle Problem Language Result Execution time Memory
749885 2023-05-28T20:05:38 Z 1ne Cyberland (APIO23_cyberland) C++17
49 / 100
3000 ms 40312 KB
#include "cyberland.h"
#include <bits/stdc++.h>
#include <vector>
using namespace std;
struct node{
  int x,y;
  double v;
  bool operator < (const node& P)const{
  	return P.v > v;
  }
};
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) {
	 vector<vector<pair<int,int>>>adj(N);
	 for (int i = 0;i<M;++i){
	 	adj[x[i]].push_back({y[i],c[i]});
	 	adj[y[i]].push_back({x[i],c[i]});
	 }
	 K = min(100,K);	
	 priority_queue<node>q;
	 q.push({0,K,0});
	 vector<vector<double>>dist(N,vector<double>(K + 1,1e12));
	 vector<vector<int>>visited(N,vector<int>(K + 1,0));
	 dist[0][K] = 0;
	 visited[0][K] = 1;
	 while(!q.empty()){
	 	auto u = q.top();
	 	q.pop();          
	 	visited[u.x][u.y] = 0;
	 	if (u.x == H)continue;
	 	if (u.v != dist[u.x][u.y])continue;
	 	for (auto x:adj[u.x]){
	 		long long v = x.second;
	 		if (arr[x.first] == 0){
	 			v = -dist[u.x][u.y];	
	 		}
	 		if (dist[x.first][u.y] > dist[u.x][u.y] + v){
	 			dist[x.first][u.y] = dist[u.x][u.y] + v;
	 			if (!visited[x.first][u.y]){
	 				q.push({x.first,u.y,dist[x.first][u.y]});
	 				visited[x.first][u.y] = 1;	
	 			}
	 		}
	 		if (arr[x.first] == 2 && u.y > 0){
	 			if (dist[x.first][u.y - 1] > (dist[u.x][u.y] + x.second)/2){
	 				dist[x.first][u.y - 1] = (dist[u.x][u.y] + x.second)/2;
	 				if (!visited[x.first][u.y - 1]){
	 					q.push({x.first,u.y - 1,dist[x.first][u.y - 1]});
	 					visited[x.first][u.y - 1] = 1;
	 				}	
	 			}
	 			//nx = dist[u.first][u.second] + x.second)/2 + 2 * vx) / 2 + 2 * vx ) / 2 
	 		}		
	 	}
	 }
	 double ans = 1e12;
	 for (int i = 0;i<=K;++i){
	 	ans = min(ans,dist[H][i]);
	 }	
	 if (ans == 1e12)return -1;		
	 return ans;
}
# Verdict Execution time Memory Grader output
1 Correct 23 ms 468 KB Correct.
2 Correct 23 ms 460 KB Correct.
# Verdict Execution time Memory Grader output
1 Correct 24 ms 852 KB Correct.
2 Correct 29 ms 816 KB Correct.
3 Correct 27 ms 844 KB Correct.
4 Correct 31 ms 856 KB Correct.
5 Correct 31 ms 840 KB Correct.
6 Correct 28 ms 5452 KB Correct.
7 Correct 35 ms 5324 KB Correct.
8 Correct 19 ms 10588 KB Correct.
9 Correct 29 ms 444 KB Correct.
10 Correct 32 ms 468 KB Correct.
# Verdict Execution time Memory Grader output
1 Correct 30 ms 852 KB Correct.
2 Correct 33 ms 860 KB Correct.
3 Correct 27 ms 852 KB Correct.
4 Correct 32 ms 448 KB Correct.
5 Correct 33 ms 448 KB Correct.
6 Correct 10 ms 4544 KB Correct.
# Verdict Execution time Memory Grader output
1 Correct 447 ms 31908 KB Correct.
2 Correct 696 ms 1008 KB Correct.
3 Correct 594 ms 928 KB Correct.
4 Incorrect 677 ms 936 KB Wrong Answer.
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 116 ms 840 KB Correct.
2 Correct 120 ms 824 KB Correct.
3 Correct 137 ms 944 KB Correct.
4 Correct 1265 ms 5204 KB Correct.
5 Correct 30 ms 340 KB Correct.
# Verdict Execution time Memory Grader output
1 Correct 42 ms 856 KB Correct.
2 Correct 40 ms 868 KB Correct.
3 Correct 58 ms 40312 KB Correct.
4 Correct 50 ms 3480 KB Correct.
5 Correct 29 ms 436 KB Correct.
6 Correct 36 ms 880 KB Correct.
# Verdict Execution time Memory Grader output
1 Correct 2416 ms 1124 KB Correct.
2 Correct 754 ms 1328 KB Correct.
3 Execution timed out 3057 ms 1460 KB Time limit exceeded
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 3049 ms 2160 KB Time limit exceeded
2 Halted 0 ms 0 KB -