A

#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <cstdlib>
#include <algorithm>
#define cl(a) memset(a,0,sizeof(a))
#define rep(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
typedef long long ll;
const ll maxn=1e10+50;
const int inf = 0x3f3f3f3f;
const int mod=1e9+7;
char s[1005];
bool isprime(ll num)
{
    if(num==0||num==1)return false;
    for(ll i = 2;i*i<=num;i++)
    {
        if(num%i==0) return false;
    }
    return true;
}
void print(int num,int k)
{
    int ch[15];
    memset(ch,0,sizeof(ch));
    int t=k;
    while(num)
    {
        ch[t--] =num%10;
        num=num/10;
    }
    for(int i=1;i<=k;i++)
    {
        printf("%d",ch[i]);
    }
    printf("\n");
}
int main()
{
    int L,K;
    scanf("%d%d",&L,&K);
    scanf("%s",s);
    ll num=0;
    ll base=1;
    for(int i=0;i<K;i++)
    {
        num=num*10+s[i]-'0';
        base = base*10;
        //cout<<num<<endl;
    }
    base/=10;
    //cout<<base<<endl;
    if(isprime(num)) {

            print(num,K); return 0;}
    else
    {
        for(int i=K;i<L;i++)
        {
            num =num%base;
            num = num*10+s[i]-'0';
            //cout<<num<<endl;
            if(isprime(num)) {print(num,K); return 0;}
        }
        printf("404\n");
    }
    return 0;
}

B
not checked

#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <cstdlib>
#include <algorithm>
#include <vector>
#include <map>
#define cl(a) memset(a,0,sizeof(a))
#define rep(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
typedef long long ll;
const ll maxn=1e10+50;
const int inf = 0x3f3f3f3f;
const int mod=1e9+7;
typedef pair<int,int>PII;
int n,m;
struct rnk
{
    string id;
    int score;
    rnk(string id,int score):id(id),score(score){}
};
vector<rnk>T,A,B;
bool cmp(rnk a,rnk b)
{
    if(a.score==b.score) return a.id<b.id;
    else return a.score>b.score;
}
struct site
{
    ll num;
    ll sum;
}st[1005];
int dt[10005][1000];
struct state
{
    int sit;
    int num;
    state(int sit,int num):sit(sit),num(num){}
};

bool cmp2(state x,state y)
{
    if(x.num==y.num) return x.sit<y.sit;
    else return x.num>y.num;
}
vector<int>G[20005];
string s;
int tot=0,tot2=0;
map<ll,int>mp;
int ctt[20005];
map<int,int>mp2;
void solve(string s,int x)
{
    if(s[0]=='B') B.push_back(rnk(s,x));
    if(s[0]=='A') A.push_back(rnk(s,x));
    if(s[0]=='T') T.push_back(rnk(s,x));
    ll num=0,date=0;
    for(int i=1;i<=3;i++)
    {
        num = num*10+(s[i]-'0');
    }
    st[num].num++;
    st[num].sum+=x;
    for(int i=4;i<=9;i++)
    {
         date=date*10+s[i]-'0';
    }
    ll hs = date*1000+num;
    if(mp2.count(date)==0)mp2[date]=++tot2;
    if(mp.count(hs)==0) mp[hs]=++tot;
    int idx = mp[hs];
    int idx2 =mp[date];
    G[idx2].push_back(num);
    ctt[idx]++;

}
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        int x;
        cin>>s>>x;
        solve(s,x);
    }
    sort(A.begin(),A.end(),cmp);
    sort(B.begin(),B.end(),cmp);
    sort(T.begin(),T.end(),cmp);
    for(int i=1;i<=m;i++)
    {
        cout<<"Case "<<i<<": ";
        int x;
        cin>>x;
        if(x==1)
        {
            char ch;
            cin>>ch;
            cout<<x<<" "<<ch<<endl;
            if(ch=='A')
            {
                if(A.size()==0) cout<<"NA"<<endl;
                else
                {
                    for(int j=0;j<A.size();j++)
                    {
                        cout<<A[j].id<<" "<<A[j].score<<endl;
                    }
                }
            }
            else if(ch=='B')
            {
                if(B.size()==0) cout<<"NA"<<endl;
                else
                {
                    for(int j=0;j<B.size();j++)
                    {
                        cout<<B[j].id<<" "<<B[j].score<<endl;
                    }
                }
            }
            else if(ch=='T')
            {
                if(T.size()==0) cout<<"NA"<<endl;
                else
                {
                    for(int j=0;j<T.size();j++)
                    {
                        cout<<T[j].id<<" "<<T[j].score<<endl;
                    }
                }
            }
        }
        else if(x==2)
        {
            int y;
            cin>>y;
            cout<<x<<" "<<y<<endl;
            if(st[y].num!=0)
            cout<<st[y].num<<" "<<st[y].sum<<endl;
            else cout<<"NA"<<endl;
        }
        else if(x==3)
        {
            ll y;
            cin>>y;
            cout<<x<<" "<<y<<endl;
            if(mp2.count(y)==0) {cout<<"NA"<<endl;continue;}
            int id = mp[y];
            //cout<<id<<endl;
            sort(G[id].begin(),G[id].end());
            G[id].erase(unique(G[id].begin(),G[id].end()),G[id].end());
           // for(int i=0;i<G[id].size())
            vector<state>vx;
            for(int k=0;k<G[id].size();k++)
            {
                 ll cf = G[id][k];
                // cout<<cf<<endl;
                 int ht = mp[y*1000+cf];
                 int nu = ctt[ht];
                vx.push_back(state(cf,nu));
            }
            sort(vx.begin(),vx.end(),cmp2);
            for(int k=0;k<vx.size();k++)
            {
                if(vx[k].num!=0)
                cout<<vx[k].sit<<" "<<vx[k].num<<endl;
            }
        }
    }
    return 0;
}

c missing

d

#include <iostream>
using namespace std;
const int maxn=2005;
int n;
int path[50];
int fmax,fmin;
int a[maxn];
void dfs(int x,int depth)
{
    int l = x*2;
    int r = x*2+1;
    if(r>n&&l>n)
    {
        for(int i=1; i<depth; i++)
        {
            printf("%d ",path[i]);
        }
        printf("%d\n",a[x]);
    }
    path[depth]=a[x];
    if(r<=n)
    {
        if(a[x]>a[r]) fmin=0;
        if(a[x]<a[r]) fmax=0;
        dfs(r,depth+1);

    }
    if(l<=n)
    {
        if(a[x]<a[l]) fmax=0;
        if(a[x]>a[l]) fmin=0;
        dfs(l,depth+1);
    }
}
int main()
{

    scanf("%d",&n);
    fmax=1;fmin=1;
    for(int i=1; i<=n; i++)
    {
        scanf("%d",&a[i]);
    }
    dfs(1,1);
    if(fmax) puts("Max Heap");
    else if(fmin) puts("Min Heap");
    else puts("Not Heap");
}