Submission #1258057

#TimeUsernameProblemLanguageResultExecution timeMemory
1258057Bui_Quoc_CuongPassport (JOI23_passport)C++20
0 / 100
0 ms324 KiB
#include <bits/stdc++.h> using namespace std; #define FOR(i, a, b) for(int i = a; i <= (int)b; i++) #define FORD(i, a, b) for(int i = a; i >= (int)b; i--) #define fi first #define se second const int LIM = 3E5 + 5; int n, q; int L[LIM], R[LIM]; int Q[LIM]; namespace sub1{ int ans[LIM]; bool checksub(){ return (n <= 2500); } int dist[2505][2505]; int calc(int st){ for(int i = 1; i <= n; i++){ for(int j = 1; j <= n; j++){ dist[i][j] = 2e9; } } queue <pair <int, int>> que; for(int u = L[st]; u <= R[st]; u++){ for(int v = L[st]; v <= R[st]; v++){ dist[u][v] = 1; que.push({u, v}); } } while(!que.empty()){ int l = que.front().fi, r = que.front().se; que.pop(); if (l == 1 && r == n) return dist[l][r]; for(int i = L[l]; i <= R[l]; i++){ for(int j = i + 1; j <= R[l]; j++){ if(dist[i][j] > dist[l][r] + 1){ dist[i][j] = dist[l][r] + 1; que.push({i, j}); } } } for(int i = L[r]; i <= R[r]; i++){ for(int j = i + 1; j <= R[r]; j++){ if(dist[i][j] > dist[l][r] + 1){ dist[i][j] = dist[l][r] + 1; que.push({i, j}); } } } } return dist[1][n] >= 2e9 ? - 1 : dist[1][n]; } void solve(){ for(int i = 1; i <= q; i++){ cout << calc(Q[i]) << "\n"; } } } signed main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); #define ko "kieuoanh" if(fopen(ko".inp", "r")){ freopen(ko".inp", "r", stdin); freopen(ko".out", "w", stdout); } cin >> n; for(int i = 1; i <= n; i++){ cin >> L[i] >> R[i]; } cin >> q; for(int i = 1; i <= q; i++){ cin >> Q[i]; } if(sub1::checksub()){ sub1::solve(); } return 0; }

Compilation message (stderr)

passport.cpp: In function 'int main()':
passport.cpp:63:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   63 |         freopen(ko".inp", "r", stdin); freopen(ko".out", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
passport.cpp:63:47: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   63 |         freopen(ko".inp", "r", stdin); freopen(ko".out", "w", stdout);
      |                                        ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
#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...