QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#842825 | #9960. Baggage | ucup-team3474# | WA | 1ms | 3908kb | C++23 | 1.8kb | 2025-01-04 15:02:37 | 2025-01-04 15:02:37 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std ;
const long long inf = 1e18 ;
void solve()
{
int n , m ;
cin >> n >> m ;
vector<array<int , 4>> edge(m) ;
for(int i = 0 ; i < m ; i ++) for(int j = 0 ; j < 4 ; j ++) cin >> edge[i][j] ;
vector<vector<long long>> ans(n , vector<long long>(n , inf)) ;
auto go = [&](int limit)
{
vector<vector<long long>> dis(n , vector<long long>(n , inf)) ;
for(int i = 0 ; i < n ; i ++) dis[i][i] = 0 ;
for(auto [a , b , c , d] : edge)
{
if(d < limit) continue ;
a -= 1 , b -= 1 ;
dis[a][b] = min(dis[a][b] , 1ll * c) ;
}
for(int k = 0 ; k < n ; k ++)
for(int i = 0 ; i < n ; i ++)
for(int j = 0 ; j < n ; j ++)
dis[i][j] = min(dis[i][j] , dis[i][k] + dis[k][j]) ;
return dis ;
} ;
vector<vector<long long>> two = go(2) ;
vector<vector<long long>> one = go(1) ;
vector<vector<long long>> zero = go(0) ;
auto cal = [&](int i , int j)
{
long long mn = two[i][j] ;
for(int k = 0 ; k < n ; k ++)
{
mn = min(mn , two[i][k] + one[k][j] + zero[j][k] + one[k][j]) ;
}
return mn ;
} ;
for(int i = 0 ; i < n ; i ++)
for(int j = 0 ; j < n ; j ++)
if(i != j)
ans[i][j] = cal(i , j) ;
for(int i = 0 ; i < n ; i ++) ans[i][i] = 0 ;
auto change = [&](long long x)
{
if(x > 1e17) return -1ll ;
return x ;
} ;
for(int i = 0 ; i < n ; i ++)
for(int j = 0 ; j < n ; j ++)
cout << change(ans[i][j]) << " \n"[j == n - 1] ;
}
int main()
{
std::ios::sync_with_stdio(false) , cin.tie(0) ;
int T = 1 ;
while (T --) solve() ;
return 0 ;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3560kb
input:
5 7 1 2 500 2 2 3 100 1 3 5 20 2 5 4 5 1 4 2 1 0 3 4 40 2 5 4 77 1
output:
0 500 726 751 746 -1 0 226 251 246 -1 -1 0 40 20 -1 -1 -1 0 -1 -1 -1 -1 131 0
result:
ok 25 numbers
Test #2:
score: -100
Wrong Answer
time: 1ms
memory: 3908kb
input:
30 5000 1 15 15034 0 1 15 15034 0 24 28 14745 2 1 15 15034 0 16 25 13210 0 16 22 26942 0 24 20 5423 1 4 12 636 0 16 12 19327 0 1 15 15034 0 1 15 15034 0 3 28 18940 2 1 15 15034 0 15 9 6468 0 20 3 6233 2 19 4 10829 2 1 15 15034 0 26 6 20998 0 1 15 15034 0 1 15 15034 0 1 15 15034 0 4 14 20515 2 1 15 1...
output:
0 868 1159 2954 3001 1108 1557 3972 596 1521 5089 1332 3230 871 2010 2145 1610 783 2677 1490 2120 3440 2627 4515 228 1088 2630 4394 3681 2618 2534 0 291 3106 3753 3127 4053 4838 3130 2387 4580 464 4486 1719 2784 2818 2476 3317 2343 777 2777 3121 1759 5381 2762 1354 5164 6928 3603 3370 2243 3111 0 28...
result:
wrong answer 4th numbers differ - expected: '2449', found: '2954'