Submission #1647558
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
#define fst(t) std::get<0>(t)
#define snd(t) std::get<1>(t)
#define thd(t) std::get<2>(t)
#define unless(p) if(!(p))
#define until(p) while(!(p))
using ll = long long;
using P = std::tuple<int,int>;
const int dx[8] = {-1, 1, 0, 0, -1, -1, 1, 1}, dy[8] = {0, 0, -1, 1, -1, 1, -1, 1};
int N, M, R, T;
int dist[3000];
vector<P> G[3000];
template <class T>
using priority_queue_with_greater = std::priority_queue<T, std::vector<T>, std::greater<T>>;
priority_queue_with_greater<P> pq;
template <typename T, typename U, int n>
void dijkstra(T s, std::vector<std::tuple<T, U>> (&graph)[n], U (&dist)[n], priority_queue_with_greater<std::tuple<U, T> > &pq){
std::fill(dist, dist+n, std::numeric_limits<U>::max() / 2);
dist[s] = 0;
pq.emplace(dist[s], s);
while(!pq.empty()){
T u;
U d;
std::tie(d, u) = pq.top();
pq.pop();
if(dist[u] < d){continue;}
for(const auto& p : graph[u]){
T v;
U c;
std::tie(v, c) = p;
if(dist[v] > d + c){
dist[v] = d + c;
pq.emplace(dist[v], v);
}
}
}
}
int main(){
std::cin.tie(nullptr);
std::ios::sync_with_stdio(false);
std::cin >> N >> M >> R >> T;
for(int i=0;i<M;++i){
int a, b, c;
std::cin >> a >> b >> c;
G[a].emplace_back(b, c);
G[b].emplace_back(a, c);
}
ll res = 0ll;
for(int i=1;i<=N;++i){
dijkstra(i, G, dist, pq);
sort(dist+1, dist+1+N);
for(int j=2;j<=N;++j){
double u = 1. * dist[j] * R / T;
// if minimizing, lb satisfies lb > ub
// if maximizing, lb satisfies lb < ub
int64_t lb = 1, ub = N + 1;
while(std::abs(ub - lb) > 1){
int64_t mid = (lb + ub) / 2;
if(u >= dist[mid]){
lb = mid;
}else{
ub = mid;
}
}
ll c = N - lb - (T > R ? 1 : 0);
res += c;
}
}
std::cout << res << std::endl;
}
Submission Info
Submission Time |
|
Task |
C - ウサギとカメ |
User |
iwashisnake |
Language |
C++14 (GCC 5.4.1) |
Score |
100 |
Code Size |
2284 Byte |
Status |
AC |
Exec Time |
1344 ms |
Memory |
512 KB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
100 / 100 |
Status |
|
|
Set Name |
Test Cases |
Sample |
subtask0_sample-01.txt, subtask0_sample-02.txt |
All |
subtask0_sample-01.txt, subtask0_sample-02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt |
Case Name |
Status |
Exec Time |
Memory |
subtask0_sample-01.txt |
AC |
1 ms |
384 KB |
subtask0_sample-02.txt |
AC |
1 ms |
384 KB |
subtask1_01.txt |
AC |
1 ms |
384 KB |
subtask1_02.txt |
AC |
1 ms |
384 KB |
subtask1_03.txt |
AC |
1 ms |
384 KB |
subtask1_04.txt |
AC |
1 ms |
384 KB |
subtask1_05.txt |
AC |
7 ms |
384 KB |
subtask1_06.txt |
AC |
9 ms |
384 KB |
subtask1_07.txt |
AC |
29 ms |
512 KB |
subtask1_08.txt |
AC |
40 ms |
384 KB |
subtask1_09.txt |
AC |
388 ms |
384 KB |
subtask1_10.txt |
AC |
386 ms |
384 KB |
subtask1_11.txt |
AC |
151 ms |
384 KB |
subtask1_12.txt |
AC |
1249 ms |
512 KB |
subtask1_13.txt |
AC |
1245 ms |
512 KB |
subtask1_14.txt |
AC |
1319 ms |
512 KB |
subtask1_15.txt |
AC |
889 ms |
512 KB |
subtask1_16.txt |
AC |
1344 ms |
512 KB |