Submission #223882

#TimeUsernameProblemLanguageResultExecution timeMemory
223882penguinhackerLutrija (COCI19_lutrija)C++14
42 / 70
348 ms504 KiB
//TASK: Lutrija #include <bits/stdc++.h> using namespace std; #define ll long long bool check(ll n) { if (n<2) return false; for (ll i=2; i*i<=n; ++i) { if (n%i==0) return false; } return true; } ll A, B, diff; vector<int> nodes; map<pair<int, int>, bool> adj; vector<int> path; void dfs(int u) { path.push_back(u); if (u==B) { cout << path.size() << '\n'; for (int i=0; i<path.size(); ++i) { cout << path[i] << (i<path.size()-1?' ':'\n'); } exit(0); } for (int i=0; i<nodes.size(); ++i) { if (adj[make_pair(u, nodes[i])]&&find(path.begin(), path.end(), nodes[i])==path.end()) { dfs(nodes[i]); } } path.pop_back(); } int main() { ios::sync_with_stdio(0); cin.tie(0); cin >> A >> B; set<int> temp; temp.insert(2); for (int i=-1; i<=1; ++i) { if (check(A+2*i)) temp.insert(A+2*i); if (check(B+2*i)) temp.insert(B+2*i); } for (const int &i : temp) nodes.push_back(i); int n = nodes.size(); for (int i=0; i<n; ++i) { for (int j=0; j<n; ++j) { adj[make_pair(nodes[i], nodes[j])] = 0; if (check(abs(nodes[i]-nodes[j]))) { adj[make_pair(nodes[i], nodes[j])] = 1; } } } dfs(A); cout << -1 << '\n'; return 0; }

Compilation message (stderr)

lutrija.cpp: In function 'void dfs(int)':
lutrija.cpp:27:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (int i=0; i<path.size(); ++i) {
                 ~^~~~~~~~~~~~
lutrija.cpp:28:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    cout << path[i] << (i<path.size()-1?' ':'\n');
                        ~^~~~~~~~~~~~~~
lutrija.cpp:32:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i=0; i<nodes.size(); ++i) {
                ~^~~~~~~~~~~~~
#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...