本文主要是介绍冬眠...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
阿宁生活在一个 nnn 行 mmm 列的字符矩阵中,阿宁打算在第 xxx 行 yyy 列冬眠。
在每一天,都会有 qqq 次行循环移动或列循环移动。
如果是第 zzz 行循环移动,那么第 zzz 行所有字符往后移动一个,最后一个字符移动到第 zzz 行开头。
如果是第 zzz 列循环移动,那么第 zzz 列所有字符往后移动一个,最后一个字符移动到第 zzz 列开头。
阿宁将要冬眠 ppp 天,冬眠结束后阿宁想知道第 xxx 行 yyy 列是什么字符?
输入描述:
第一行输入四个整数 n,m,x,yn,m,x,yn,m,x,y。 接下来 nnn 行,每行 mmm 个小写字母,表示字符矩阵。 接下来一行两个整数 p,qp, qp,q。 接下来 qqq 行,每行两个整数 op,zop, zop,z,表示一次循环移动。
如果 op=1op=1op=1,则表示行循环移动;如果 op=2op=2op=2 则表示列循环移动。
1≤n,m,p,q≤1001\leq n,m,p,q \leq 1001≤n,m,p,q≤100
保证 x,y,zx,y,zx,y,z 不会超过矩阵范围。
输出描述:
输出一个字符。
示例1
输入
复制3 3 2 2 abc def ghi 1 2 1 1 2 2
3 3 2 2 abc def ghi 1 2 1 1 2 2
输出
复制a
a
说明
第一天第一次,字符矩阵变成:
cab
def
ghi
第一天第二次,字符矩阵变成:
chb
daf
gei
示例2
输入
复制3 3 2 2 abc def ghi 10 2 1 1 2 2
3 3 2 2 abc def ghi 10 2 1 1 2 2
输出
复制e
e
//模拟就完了。
#include<bits/stdc++.h>
using namespace std;
struct xx{int op,z;
}s[105];
int main(){int n,m,x,y,z,p,q,i,j;char a[105][105],c;cin>>n>>m>>x>>y;for(i=1;i<=n;i++){for(j=1;j<=m;j++){cin>>a[i][j];}}cin>>p>>q;for(int b=1;b<=q;b++)cin>>s[b].op>>s[b].z;while(p--){for(int b=1;b<=q;b++){cin>>s[b].op>>s[b].z;z=s[b].z;if(s[b].op==1){c=a[z][m];for(j=m;j>=2;j--)a[z][j]=a[z][j-1];a[z][1]=c;}else{c=a[n][z];for(i=n;i>=2;i--)a[i][z]=a[i-1][z];a[1][z]=c;}}}cout<<a[x][y];return 0;
}
这篇关于冬眠...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!