답안 #898402

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
898402 2024-01-04T15:44:30 Z vjudge1 Passport (JOI23_passport) C++17
0 / 100
2000 ms 8140 KB
#pragma GCC optimize("Ofast")
#pragma GCC optimize ("unroll-loops")
// #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx")
#include <bits/stdc++.h>
using namespace std;
 
#define IOS ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define str string
#define int long long
#define ll long long
#define ld long double
#define pb push_back
#define F first
#define S second
#define all(x) x.begin() , x.end()
#define setpr(x) cout << fixed << setprecision(x) 
#define endl '\n'
 
const int inf = INT_MAX;
const ld eps = 1e-9 , pi = acos(-1.0);
const ll mod = 1e9 + 7; // 998244353;
const int dx[4]{1 , 0 , -1 , 0} , dy[4]{0 , 1 , 0 , -1};

vector<pair<int , int>> bu;
int n;

int bfs(int x){
    vector<int> dist(n + 1 , -1) , qat(n + 1 , -1);
    queue<int> q;
    auto add = [&](int j , int i , int p){
        if(dist[i] == -1){
            dist[i] = p;
            q.push(i);
            qat[i] = j;
        }
    };
    add(x , x , 0);
    while(!q.empty()){
        int u = q.front();
        q.pop();
        for(int i = bu[u - 1].F ; i <= bu[u - 1].S ; i ++) if(u != i) add(u , i , dist[u] + 1);
    }
    if(dist[1] == -1 || dist[n] == -1) return -1;
    unordered_set<int> st1;
    int h1 = 1 , h2 = n;
    while(h1 != x){
        h1 = qat[h1];
        st1.insert(h1);
    }
    while(h2 != x){
        h2 = qat[h2];
        st1.insert(h2);
    }
    return st1.size();
}

void solution(){
    cin >> n;
    bu.resize(n);
    for(int i = 0 ; i < n ; i ++) cin >> bu[i].F >> bu[i].S;
    int q; cin >> q;
    while(q --){
        int x; cin >> x;
        cout << bfs(x) << endl; 
    }
}  
 
signed main(){
    IOS;
    int t = 1; // cin >> t;
    while(t --) solution();
}   
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Execution timed out 2082 ms 8140 KB Time limit exceeded
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 1 ms 344 KB Output is correct
6 Correct 0 ms 344 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Incorrect 1 ms 348 KB Output isn't correct
9 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 1 ms 344 KB Output is correct
6 Correct 0 ms 344 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Incorrect 1 ms 348 KB Output isn't correct
9 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 1 ms 344 KB Output is correct
6 Correct 0 ms 344 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Incorrect 1 ms 348 KB Output isn't correct
9 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Execution timed out 2082 ms 8140 KB Time limit exceeded
5 Halted 0 ms 0 KB -