1.https://vjudge.net/contest/397650#problem/B
#include <bits/stdc++.h>
using namespace std;
const int Max=21;
char mapp[Max][Max];
int vis[Max][Max];
int dir[4][2]={{-1,0},{0,1},{1,0},{0,-1}};
int w,h,sx,sy,step=0;
void dfs(int x,int y){
int nx,ny;
step++;
vis[x][y]=1;
for(int i=0;i<4;i++){
nx=x+dir[i][0];
ny=y+dir[i][1];
if(mapp[nx][ny]=='.'&&!vis[nx][ny]&&nx>=0&&nx<h&&ny>=0&&ny<w){
//vis[nx][ny]=1;
dfs(nx,ny);
//vis[nx][ny]=0;
}
}
}
int main(){
cin>>w>>h;
for(int i=0;i<h;i++)
for(int j=0;j<w;j++){
cin>>mapp[i][j];
if(mapp[i][j]=='@'){
sx=i;
sy=j;
}
}
//vis[sx][sy]=1;
dfs(sx,sy);
cout<<step<<endl;
return 0;
}
2.https://vjudge.net/contest/397650#problem/C
#include <bits/stdc++.h>
using namespace std;
int n;
bool judge1(int x){
for(int i=2;i*i<=x;i++){
if(x%i==0)
return false;
}
return true;
}
bool judge2(int x){
if(x<100){
int a=x%10;
int b=x/10;
if(a==b)
return true;
}
else{
int a=x%10;
int b=(x/10)/10;
if(a==b)
return true;
}
return false;
}
int main(){
int ans=0;
cin>>n;
for(int i=11;i<=n;i++){
if(judge1(i)&&judge2(i))
ans++;
}
cout<<ans<<endl;
return 0;
}