Codeforces Round #137 (Div. 2)——B
来源:互联网 发布:js 面向对象写法 编辑:程序博客网 时间:2024/06/02 10:17
The Free Meteor Association (FMA) has got a problem: as meteors are moving, the Universal Cosmic Descriptive Humorous Program (UCDHP) needs to add a special module that would analyze this movement.
UCDHP stores some secret information about meteors as an n × m table with integers in its cells. The order of meteors in the Universe is changing. That's why the main UCDHP module receives the following queries:
- The query to swap two table rows;
- The query to swap two table columns;
- The query to obtain a secret number in a particular table cell.
As the main UCDHP module is critical, writing the functional of working with the table has been commissioned to you.
The first line contains three space-separated integers n, m and k (1 ≤ n, m ≤ 1000, 1 ≤ k ≤ 500000) — the number of table columns and rows and the number of queries, correspondingly.
Next n lines contain m space-separated numbers each — the initial state of the table. Each number p in the table is an integer and satisfies the inequality 0 ≤ p ≤ 106.
Next k lines contain queries in the format "si xi yi", where si is one of the characters "с", "r" or "g", andxi, yi are two integers.
- If si = "c", then the current query is the query to swap columns with indexes xi and yi (1 ≤ x, y ≤ m, x ≠ y);
- If si = "r", then the current query is the query to swap rows with indexes xi and yi (1 ≤ x, y ≤ n, x ≠ y);
- If si = "g", then the current query is the query to obtain the number that located in the xi-th row and in the yi-th column (1 ≤ x ≤ n, 1 ≤ y ≤ m).
The table rows are considered to be indexed from top to bottom from 1 to n, and the table columns — from left to right from 1 to m.
For each query to obtain a number (si = "g") print the required number. Print the answers to the queries in the order of the queries in the input.
3 3 51 2 34 5 67 8 9g 3 2r 3 2c 2 3g 2 2g 3 2
896
2 3 31 2 43 1 5c 2 1r 1 2g 1 3
5
Let's see how the table changes in the second test case.
After the first operation is fulfilled, the table looks like that:
2 1 4
1 3 5
After the second operation is fulfilled, the table looks like that:
1 3 5
2 1 4
So the answer to the third query (the number located in the first row and in the third column) will be 5.
#include <iostream>#include <cstdio>#include <cstring>using namespace std;#define maxn 1005int a[maxn][maxn];int r[maxn];//记录行变换int c[maxn];//记录列变换int main(){ int n,m,k; scanf("%d%d%d",&n,&m,&k); int i,j; for(i=1; i<=n; i++) for(j=1; j<=m; j++) scanf("%d",&a[i][j]); //存储数组初始化 for(i=1;i<=n;i++) r[i]=i; for(j=1;j<=m;j++) c[j]=j; while(k--) { getchar(); char ch; int x,y; scanf("%c%d%d",&ch,&x,&y); if(ch=='g') printf("%d\n",a[r[x]][c[y]]); if(ch=='c') { //交换第x,y列 int t=c[x]; c[x]=c[y]; c[y]=t; } if(ch=='r') { //交换第x,y行 int t=r[x]; r[x]=r[y]; r[y]=t; } } return 0;}
- Codeforces Round #137 (Div. 2)——B
- Codeforces Round #154 (Div. 2)——B
- Codeforces Round #156 (Div. 2)——B
- Codeforces Round #151 (Div. 2)——B
- Codeforces Round #152 (Div. 2)——B
- Codeforces Round #149 (Div. 2)——B
- Codeforces Round #146 (Div. 2)——B
- Codeforces Round #144 (Div. 2)——B
- Codeforces Round #142 (Div. 2)——B
- Codeforces Round #157 (Div. 2)——B
- Codeforces Round #134 (Div. 2)——B
- Codeforces Round #141 (Div. 2)——B
- Codeforces Round #140 (Div. 2)——B
- Codeforces Round #136 (Div. 2)——B
- Codeforces Round #135 (Div. 2)——B
- Codeforces Round #124 (Div. 2)——B
- Codeforces Round #123 (Div. 2)——B
- Codeforces Round #117 (Div. 2)——B
- SharePoint 2013 设置搜索导航(Search Navigation)
- 大型企业的交换无线局域网应用简析
- qt加sql,link2019
- 编译arm-linux-gdb
- Script标签的属性
- Codeforces Round #137 (Div. 2)——B
- linux 中断分析
- linux 驱动注册
- oracle中表和列添加注释
- java中得到不同“type”的类实例
- Linux 学习贴
- 数学问题(一)之 杨辉三角
- ExtJs4表格中表头居中对齐,单元格内容左边对齐
- C语言错误集锦