1.
#include<bits/stdc++.h>
using namespace std;int main()
{
int n,a;
queue<int> q;
stack<int> s;
scanf("%d",&n);
for(int i = 0; i < n; i++)
{
scanf("%d",&a);
q.push(a);
}
while(!q.empty())
{
s.push(q.front());
q.pop();
}
while(!s.empty())
{
q.push(s.top());
s.pop();
}
while(!q.empty())
{
printf("%d ",q.front());
q.pop();
}
return 0;
}
3.
//dfs
#include<bits/stdc++.h>
using namespace std;
const int maxn = 1000;
char mp[maxn][maxn];//1代表有障碍,S为起点,E为终点
bool vis[maxn][maxn];//1表示已被访问
int n,m;
int flag;
bool judge(int x, int y)
{
if(x>0 && x<=n && y>0 && y<=m && !vis[x][y] && mp[x][y] != '1')
return true;
return false;
}
void dfs(int x, int y)
{
if(mp[x][y] == 'E')
{
flag = 1;
return ;
}
vis[x][y] = 1;
for(int i = -1; i <= 1; i++)
for(int j = -1; j <= 1; j++)
{
int x1 = x + i;
int y1 = y + j;
if(judge(x1,y1))
dfs(x1,y1);
}
}
int main()
{
while(~scanf("%d%d",&n,&m))
{
memset(vis,0,sizeof(vis));
flag = 0;
int posx,posy;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= m; j++)
{
cin>>mp[i][j];
if(mp[i][j] == 'S')
{
posx = i;
posy = j;
}
}
dfs(posx,posy);
if(flag)
printf("Yes\n");
else
printf("No\n");
}
return 0;
}