제출 #903995

#제출 시각아이디문제언어결과실행 시간메모리
903995vjudge1Lutrija (COCI19_lutrija)C++17
42 / 70
1054 ms600 KiB
#include<bits/stdc++.h> using namespace std; bool isPrime(long long n){ if(n < 2)return 0; if(n == 2)return 1; if(n % 2 == 0)return 0; for(long long i = 3;i * i <= n;i += 2){ if(n % i == 0)return 0; } return 1; } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); long long a, b; cin >> a >> b; map<long long, vector<long long>>G; for(int i = -2;i <= 2;i += 2){ if(i && isPrime(a + i)){ G[a].push_back(a + i); G[a + i].push_back(a); } for(int j = -2;j <= 2;j += 2){ if(isPrime(a + i) && isPrime(b + j) && isPrime(abs(a + i - b - j))){ G[a + i].push_back(b + j); G[b + j].push_back(a + i); } if(isPrime(a + i) && isPrime(abs(a + i - 2))){ G[2].push_back(a + i); G[a + i].push_back(2); } if(isPrime(b + j) && isPrime(abs(b + j - 2))){ G[2].push_back(b + j); G[b + j].push_back(2); } } } for(int j = -2;j <= 2;j += 2){ if(j && isPrime(b + j)){ G[b].push_back(b + j); G[b + j].push_back(b); } } map<long long, int>dist; dist[a] = 0; map<long long, long long>par; par[a] = a; queue<int>q; q.push(a); while(!q.empty()){ long long cur = q.front(); q.pop(); for(long long &v : G[cur]){ if(!dist.count(v) || dist[v] > dist[cur] + 1){ dist[v] = dist[cur] + 1; par[v] = cur; q.push(v); } } } if(!dist.count(b)){ cout << -1; } else{ vector<long long>path; long long node = b; while(node != a){ path.push_back(node); node = par[node]; } path.push_back(a); reverse(path.begin(), path.end()); cout << path.size() << '\n'; for(long long &v : path)cout << v << " "; } }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...