# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
298035 | miss_robot | Toll (BOI17_toll) | C++14 | 264 ms | 73596 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 <bits/stdc++.h>
#pragma GCC optimize("O3")
#define int long long
using namespace std;
signed main(){
cin.tie(0);
ios::sync_with_stdio(0);
int k, n, m, o, L = 16, INF = numeric_limits<int>::max()/8;
cin >> k >> n >> m >> o;
vector< vector< vector< vector<int> > > > g(L, vector< vector< vector<int> > >((n+k-1)/k, vector< vector<int> >(k, vector<int>(k, INF))));
while(m--){
int a, b, t;
cin >> a >> b >> t;
g[0][a/k][a%k][b%k] = t;
}
for(int i = 1; i < L; i++)
for(int j = 0; j < (n+k-1)/k-(1<<i); j++)
for(int u = 0; u < k; u++)
for(int v = 0; v < k; v++)
for(int w = 0; w < k; w++)
g[i][j][u][v] = min(g[i][j][u][v], g[i-1][j][u][w]+g[i-1][j+(1<<(i-1))][w][v]);
while(o--){
int a, b, pos;
cin >> a >> b;
if(a/k == b/k){
cout << "-1\n";
continue;
# | 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... |