Submission #1370268

#TimeUsernameProblemLanguageResultExecution timeMemory
1370268ziyad_alharbiLutrija (COCI19_lutrija)C++20
0 / 70
71 ms432 KiB
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define gcd __gcd
bool prime(int x)
{
    if(x<=1)return 0;
    for(int i=2;i*i<=x;i++)if(!(x%i))return 0;
    return 1;
}
signed main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int a,b,A,B;
    cin>>a>>b;
    A=a;
    B=b;
    bool bl=1;
    vector<int>lf,rh;
    lf.push_back(a);
    rh.push_back(b);
    if(prime(abs(a-b)))
    {
        cout<<2<<endl;
        cout<<a<<' '<<b<<endl;
        return 0;
    }
    for(int x=1;x<=28;x++)
    {
        // cout<<a<<' '<<prime(a+2)<<' '<<b<<' '<<prime(b+2)<<endl;
        if(prime(a+2))
        {
            a+=2;
            lf.push_back(a);
            if(prime(abs(a-b)))break;
        }
        else if(prime(b+2))
        {
            b+=2;
            rh.push_back(b);
            // cout<<b<<endl;
            if(prime(abs(a-b)))break;
        }
    }
    if(prime(abs(a-b)))
    {
        cout<<lf.size()+rh.size()<<endl;
        for(int x=0;x<lf.size();x++)cout<<lf[x]<<' ';
        for(int x=rh.size()-1;x>=0;x--)cout<<rh[x]<<' ';
        return 0;
    }
    lf.clear();
    rh.clear();
    a=A;
    b=B;
    lf.push_back(a);
    rh.push_back(b);
    for(int x=1;x<=28;x++)
    {
        if(prime(a+2))
        {
            a+=2;
            lf.push_back(a);
            if(prime(abs(a-b)))break;
        }
        else if(prime(b-2))
        {
            b-=2;
            rh.push_back(b);
            if(prime(abs(a-b)))break;
        }
    }
    if(prime(abs(a-b)))
    {
        cout<<lf.size()+rh.size()<<endl;
        for(int x=0;x<lf.size();x++)cout<<lf[x]<<' ';
        for(int x=rh.size()-1;x>=0;x--)cout<<rh[x]<<' ';
        return 0;
    }
    lf.clear();
    rh.clear();
    a=A;
    b=B;
    lf.push_back(a);
    rh.push_back(b);
    for(int x=1;x<=28;x++)
    {
        if(prime(a-2))
        {
            a-=2;
            lf.push_back(a);
            if(prime(abs(a-b)))break;
        }
        else if(prime(b-2))
        {
            b-=2;
            rh.push_back(b);
            if(prime(abs(a-b)))break;
        }
    }
    if(prime(abs(a-b)))
    {
        cout<<lf.size()+rh.size()<<endl;
        for(int x=0;x<lf.size();x++)cout<<lf[x]<<' ';
        for(int x=rh.size()-1;x>=0;x--)cout<<rh[x]<<' ';
        return 0;
    }
    lf.clear();
    rh.clear();
    a=A;
    b=B;
    lf.push_back(a);
    rh.push_back(b);
    for(int x=1;x<=28;x++)
    {
        if(prime(a-2))
        {
            a+=2;
            lf.push_back(a);
            if(prime(abs(a-b)))break;
        }
        else if(prime(b-2))
        {
            b-=2;
            rh.push_back(b);
            if(prime(abs(a-b)))break;
        }
    }
    if(prime(abs(a-b)))
    {
        cout<<lf.size()+rh.size()<<endl;
        for(int x=0;x<lf.size();x++)cout<<lf[x]<<' ';
        for(int x=rh.size()-1;x>=0;x--)cout<<rh[x]<<' ';
        return 0;
    }
    cout<<-1<<endl;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...