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");
}