求助大佬,第54个点TLE
查看原帖
求助大佬,第54个点TLE
670207
denglinchenAKIOI楼主2023/7/23 17:31
#include<bits/stdc++.h>
using namespace std;
inline int read() {
	int x = 0, f = 1;
	char ch = getchar();
	while (ch < '0' || ch > '9') {
		if (ch == '-')
			f = -1;
		ch = getchar();
	}
	while (ch >= '0' && ch <= '9')
		x = x * 10 + ch - '0', ch = getchar();
	return x * f;
}
void write(int x) {
	if (x < 0)
		putchar('-'), x = -x;
	if (x > 9)
		write(x / 10);
	putchar(x % 10 + '0');
	return;
}
int n, m, k, a[1005][1005], across[1005], vertical[1005];
int main() {
	n = read();
	m = read();
	k = read();
	for (int i = 1; i <= n; i++) {
		vertical[i] = i;
		for (int j = 1; j <= m; j++) {
			across[j] = j;
			a[i][j] = read();
		}
	}
	for (int i = 1; i <= k; i++) {
		char c;
		int x, y;
		cin >> c;
		x = read();
		y = read();
		if (c == 'c') {
			int t = across[x];
			across[x] = across[y];
			across[y] = t;
		}
		if (c == 'r') {
			int t = vertical[x];
			vertical[x] = vertical[y];
			vertical[y] = t;
		}
		if (c == 'g') {
			write(a[vertical[x]][across[y]]);
			cout << endl;
		}
	}
}
2023/7/23 17:31
加载中...