QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#392829#3788. Funny Car Racing秦始皇派蒙恬还原神舟十二 (Jiancong Wen, Chu Jin, Zekai Zhang)0 0ms0kbC++171.3kb2024-04-17 21:04:132024-04-17 21:04:14

Judging History

This is the latest submission verdict.

  • [2024-04-17 21:04:14]
  • Judged
  • Verdict: 0
  • Time: 0ms
  • Memory: 0kb
  • [2024-04-17 21:04:13]
  • Submitted

answer

#include<bits/stdc++.h>
using namespace std;
#define inf 0x3f3f3f3f
#define pii pair<int,int>
#define ll long long

const int N = 1e3 + 20;
ll dis[N];
struct node
{
    int v;
    ll a,b,t;
} ;
vector<node> g[N];
int n,m,ss,tt;
void solve()
{
    for(int i = 0; i <= n; i++) dis[i] = 1e18,g[i].clear();
    while(m--)
    {
        int u,v;
        ll a,b,t;
        cin >> u >> v >> a >> b >> t;
        if(a < t) continue;
        g[u].push_back({v,a,b,t});
    }
    
    dis[ss] = 0;
    queue<int> q;
    q.push(ss);
    ll ans = 1e18;

    while(q.size())
    {
        int u = q.front();
        q.pop();

        for(int i = 0; i < (int)g[u].size(); i++)
        {
            node j = g[u][i];
            ll term = j.a + j.b;
            if(dis[u] % term + j.t <= j.a)
            {
                dis[j.v] = min(dis[u] + j.t,dis[j.v]);
            }
            else 
            {
                dis[j.v] = min(dis[u] + (term - dis[u] % term) + j.t,dis[j.v]);
            }
            q.push(j.v);
            if(j.v == tt) ans = min(ans,dis[tt]);
        }
    }
    cout << ans << "\n";
}

signed main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int T = 1;
	// cin >> T;
	while(cin >> n >> m  >> ss >> tt)
	{
        cout << "Case " << T++ << ": " ;
		solve();
	}
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 0
Time Limit Exceeded

input:

155 9507 117 14
19 18 2 123 1
100 97 4 155 3
121 120 1 140 1
5 8 1 121 1
69 66 2 107 2
151 150 2 190 1
68 69 1 101 1
61 60 2 126 1
124 127 2 160 3
59 55 5 133 4
66 67 1 189 1
94 96 2 108 2
65 63 2 181 2
44 48 1 130 1
28 29 1 180 1
5 6 1 107 1
29 28 1 120 1
142 140 4 152 2
46 45 2 113 1
85 88 6 163 3...

output:


result: