으으 문제 이해가 안 돼서 막혔었다.
이거 type에 따라서 동작하는 건 알겠는데 이 타입으로 뭘 하라는 건지 몰랐다.
알고보니 원본 배열을 구하라는 문제였다.
뒤에서 부터 3이면 집어넣고 1,2면 값 shift하고.. 끝~~
이거 시간복잡도 구하는 거 착각해서 n이 100이고 q가 10000이라 두 개 곱하면 백만이고 백만은 N*longN이 되어야 겠군...
엄청 고민했는데 알고보니 Q*n이라 백만이고, 1초에 2억까지 가능해서 오케..
그냥 주어진 문장대로 작동하면 되는 문제였다. 허허
아ㅋㅋㅋ 이거 잘 짜다가 쿼리 거꾸로 입력받는거에서 좀 어려웠음ㅋㅋㅋㅋ
벡터 배열 만들어서 어찌저찌 입력 받았다. 후..
코포한테 C++실력 시험 받는 기분이었음.
자네 이차원 벡터 함수 인자로 보낼 수 있나?
vector<vector<int>> shift_col(vector<vector<int>> &v, int p) 이렇게 &붙여서 보내면 됨니다
입력 거꾸로 받는 건 할 수 있겠나?
vector<int> v[q]; 이게 벡터 배열이고 여기에 값을 저장해서 사용할 것입니다.
와우 그래도 이걸 짰다는게 놀랍다
세상사람들~~~ 제가 벡터 배열을 만들었어요~~~~~~
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <functional>
#include <string>
#include <queue>
#include <stack>
#include <set>
#include <map>
#define xx first
#define yy second
using namespace std;
using i64 = long long;
using ii = pair<int, int>;
using ii64 = pair<i64, i64>;
int n, m;
void print_vec(vector<vector<int>> &v)
{
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
{
cout << v[i][j] << " ";
}
cout << endl;
}
}
vector<vector<int>> shift_row(vector<vector<int>> &v, int p)
{
v[p][0] = v[p][m];
for (int i = m; i > 0; i--)
{
v[p][i] = v[p][i-1];
}
return v;
}
vector<vector<int>> shift_col(vector<vector<int>> &v, int p)
{
v[0][p] = v[n][p];
for (int i = n; i > 0; i--)
{
v[i][p] = v[i-1][p];
}
return v;
}
int main() {
int q;
scanf("%d %d %d", &n, &m, &q);
vector<vector<int>> ans(n+1, vector<int>(m+1, 0));
vector<int> v[q];
for (int i = 0; i < q; i++)
{
int in;
scanf("%d", &in);
v[i].push_back(in);
int max_num;
if (in == 1 || in == 2)
max_num = 1;
else
max_num = 3;
for (int j = 1; j <= max_num; j++)
{
scanf("%d", &in);
v[i].push_back(in);
}
}
for (int i = q-1; i >= 0; i--)
{
if (v[i][0] == 1)
{
shift_row(ans, v[i][1]);
}
else if (v[i][0] == 2)
{
shift_col(ans, v[i][1]);
}
else
{
int r = v[i][1], c = v[i][2], x = v[i][3];
ans[r][c] = x;
}
}
print_vec(ans);
return 0;
}
예아
'코드포스' 카테고리의 다른 글
[코드포스 Practice21] D. Anu Has a Function (0) | 2020.06.26 |
---|---|
[코드포스 Practice21] E. Zmei Gorynich (0) | 2020.06.06 |
[코드포스 Practice21] B. Alice and Hairdresser (0) | 2020.06.06 |
[코드포스 Practice21] A. K-th Not Divisible by n (0) | 2020.06.06 |
[코드포스 Practice21] 후기 (0) | 2020.06.06 |