Submission #903988

#TimeUsernameProblemLanguageResultExecution timeMemory
903988vjudge1Lutrija (COCI19_lutrija)C++17
42 / 70
2 ms604 KiB
#include<bits/stdc++.h> using namespace std; const int mxN = 1005; vector<int> G[mxN]; bool isPrime(int n){ if(n < 2)return 0; if(n == 2)return 1; if(n % 2 == 0)return 0; for(int 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; for(int i = 2;i <= 1000;++i){ if(isPrime(i)){ for(int j = 2;j <= 1000;++j){ if(isPrime(abs(i - j)) && isPrime(j)){ G[i].push_back(j); G[j].push_back(i); } } } } vector<int>dist(1001, 1e9); vector<int>par(1001); par[a] = a; queue<int>Q; Q.push(a); dist[a] = 0; while(!Q.empty()){ int cur = Q.front(); Q.pop(); for(int &v : G[cur]){ if(dist[v] > dist[cur] + 1){ dist[v] = dist[cur] + 1; par[v] = cur; Q.push(v); } } } if(dist[b] != 1e9){ vector<int>path; int 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(int &i : path)cout << i << " "; } else{ cout << -1; } }
#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...