제출 #1166152

#제출 시각아이디문제언어결과실행 시간메모리
1166152dnnndaEscape Route 2 (JOI24_escape2)C++20
14 / 100
3097 ms112320 KiB
#include<bits/stdc++.h> using namespace std; #define S second #define F first #define ll long long //#define int long long //#pragma GCC optimize("Ofast, unroll-loop") //#pragma GCC target("avx,avx2") #pragma GCC optimize("O3") #define init(arr,val) memset(arr,val,sizeof arr) const int inf=0x3f3f3f3f; const ll inff=0x3f3f3f3f3f3f3f3f; const int X=1000000007; //const int X=998244353; vector<int> que[2005][2005]; ll ans[300005]; vector<pair<int,int>> bus[100005]; int main(){ ios::sync_with_stdio(false), cin.tie(nullptr); init(ans,0x3f); int n, T; cin >> n >> T; for(int i=1 ; i<n ; i++){ int m; cin >> m; for(int j=0 ; j<m ; j++){ int a, b; cin >> a >> b; bus[i].push_back({a,b}); } } int q; cin >> q; for(int i=1 ; i<=q; i++){ int l, r; cin >> l >> r; que[l][r].push_back(i); } for(int i=1 ; i<=n ; i++){ for(auto[a1,b1]:bus[i]){ ll t=b1, nxt=inff; for(int j=i+1 ; j<=n ; j++){ for(int plc:que[i][j]) ans[plc]=min(ans[plc],t-a1); for(auto[a,b]:bus[j]){ nxt=min(nxt,t+(a+T-t%T)%T+(b-a)); } //cout << i << ' ' << j << ' ' << t << ' ' << nxt << '\n'; t=nxt, nxt=inff; } } } for(int i=1 ; i<=q ; i++) cout << ans[i] << '\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...