Submission #346673

#TimeUsernameProblemLanguageResultExecution timeMemory
346673Pichon5Lutrija (COCI19_lutrija)C++17
70 / 70
764 ms492 KiB
#include<bits/stdc++.h> #define lcm(a,b) (a/__gcd(a,b))*b #define fast ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); #define ll long long int #define vi vector<int> #define vll vector<ll> #define pb push_back #define F first #define S second #define mp make_pair //salida rapida "\n" //DECIMALES fixed<<sp(n)<<x<<endl; //gcd(a,b)= ax + by //lCB x&-x //set.erase(it) - ersases the element present at the required index//auto it = s.find(element) //set.find(element) - iterator pointing to the given element if it is present else return pointer pointing to set.end() //set.lower_bound(element) - iterator pointing to element greater than or equal to the given element //set.upper_bound(element) - iterator pointing to element greater than the given element // | ^ using namespace std; bool is_prime(ll x){ if(x<2ll){ return false; } for(ll i=2;i<=sqrt(x);i++){ if(x%i==0ll){ return false; } } return true; } vll nodos; map<ll,vll>G; map<ll,bool>vis; map<ll,vll>UF; vll ans; ll A,B; void dfs(ll u){ if(u==B){ ans=UF[B]; } vis[u]=true; for(auto it : G[u]){ if(vis[it]==false){ UF[it]=UF[u]; UF[it].pb(it); dfs(it); } } } int main() { cin>>A>>B; for(ll i=A-2;i<=A+2;i++){ if(is_prime(i)){ nodos.pb(i); } } for(ll i=B-2;i<=B+2;i++){ if(is_prime(i)){ nodos.pb(i); } } nodos.pb(2ll); for(int i=0;i<nodos.size();i++){ for(int l=0;l<nodos.size();l++){ if(is_prime(abs(nodos[i]-nodos[l]))){ G[nodos[i]].pb(nodos[l]); G[nodos[l]].pb(nodos[i]); } } } sort(nodos.begin(),nodos.end()); nodos.erase(unique(nodos.begin(),nodos.end()),nodos.end()); UF[A].pb(A); dfs(A); if(ans.size()==0){ cout<<-1<<endl; }else{ cout<<ans.size()<<endl; for(int i=0;i<ans.size();i++){ cout<<ans[i]<<" "; } } return 0; }

Compilation message (stderr)

lutrija.cpp: In function 'int main()':
lutrija.cpp:65:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   65 |     for(int i=0;i<nodos.size();i++){
      |                 ~^~~~~~~~~~~~~
lutrija.cpp:66:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   66 |         for(int l=0;l<nodos.size();l++){
      |                     ~^~~~~~~~~~~~~
lutrija.cpp:81:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   81 |         for(int i=0;i<ans.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...