#include "seats.h"
#include <iostream>
using namespace std;
const int MAXN = 1e3;
int grid[MAXN][MAXN], N, M;
void give_initial_chart(int H, int W, vector<int> R, vector<int> C) {
int cnt=0;
N = H; M = W;
for(int i=0; i<H*W; i++) {
grid[R[i]][C[i]] = cnt;
cnt++;
}
}
void find_position(pair<int,int>& p1, pair<int,int>& p2, int a, int b) {
bool flag=false;
for(int i=0; i<N; i++) {
for(int j=0; j<M; j++) {
if(grid[i][j] == a) {
if(!flag) { p1 = { i, j}; flag = true; }
else p2 = { i, j };
}
else if(grid[i][j] == b) {
if(!flag) { p1 = { i, j}; flag = true; }
else p2 = { i, j };
}
}
}
}
bool can(int r1, int r2, int c1, int c2, int k) {
for(int i=r1; i<=r2; i++) {
for(int j=c1; j<=c2; j++) {
if(grid[i][j] >= k) return false;
}
}
/*
for(int i=r1; i<=r2; i++) {
for(int j=c1; j<=c2; j++)
cout << grid[i][j] << " ";
cout << "\n";
}
*/
return true;
}
void print(){
for(int i=0; i<N; i++) {
for(int j=0; j<M; j++)
cout << grid[i][j] << " ";
cout << "\n";
}
}
int swap_seats(int a, int b) {
pair<int,int> p1, p2;
find_position(p1, p2, a, b);
swap(grid[p1.first][p1.second], grid[p2.first][p2.second]);
int ret=0;
for(int r1=0; r1<N; r1++) {
for(int r2=r1; r2 < N; r2++) {
for(int c1=0; c1 < M; c1++) {
for(int c2=c1; c2 < M; c2++) {
int k = (r2-r1+1) * (c2-c1+1);
if(can(r1, r2, c1, c2, k)){
ret++;
}
}
}
}
}
return ret;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
4 ms |
460 KB |
Output is correct |
2 |
Correct |
10 ms |
440 KB |
Output is correct |
3 |
Correct |
46 ms |
452 KB |
Output is correct |
4 |
Correct |
65 ms |
396 KB |
Output is correct |
5 |
Correct |
986 ms |
928 KB |
Output is correct |
6 |
Correct |
45 ms |
456 KB |
Output is correct |
7 |
Correct |
45 ms |
416 KB |
Output is correct |
8 |
Correct |
74 ms |
424 KB |
Output is correct |
9 |
Correct |
141 ms |
464 KB |
Output is correct |
10 |
Correct |
51 ms |
580 KB |
Output is correct |
11 |
Correct |
67 ms |
596 KB |
Output is correct |
12 |
Correct |
44 ms |
452 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
4 ms |
460 KB |
Output is correct |
2 |
Correct |
10 ms |
440 KB |
Output is correct |
3 |
Correct |
46 ms |
452 KB |
Output is correct |
4 |
Correct |
65 ms |
396 KB |
Output is correct |
5 |
Correct |
986 ms |
928 KB |
Output is correct |
6 |
Correct |
45 ms |
456 KB |
Output is correct |
7 |
Correct |
45 ms |
416 KB |
Output is correct |
8 |
Correct |
74 ms |
424 KB |
Output is correct |
9 |
Correct |
141 ms |
464 KB |
Output is correct |
10 |
Correct |
51 ms |
580 KB |
Output is correct |
11 |
Correct |
67 ms |
596 KB |
Output is correct |
12 |
Correct |
44 ms |
452 KB |
Output is correct |
13 |
Execution timed out |
4075 ms |
972 KB |
Time limit exceeded |
14 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
4033 ms |
35880 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
4094 ms |
972 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
20 ms |
1988 KB |
Output is correct |
2 |
Correct |
37 ms |
1980 KB |
Output is correct |
3 |
Correct |
427 ms |
2016 KB |
Output is correct |
4 |
Execution timed out |
4064 ms |
1356 KB |
Time limit exceeded |
5 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
4 ms |
460 KB |
Output is correct |
2 |
Correct |
10 ms |
440 KB |
Output is correct |
3 |
Correct |
46 ms |
452 KB |
Output is correct |
4 |
Correct |
65 ms |
396 KB |
Output is correct |
5 |
Correct |
986 ms |
928 KB |
Output is correct |
6 |
Correct |
45 ms |
456 KB |
Output is correct |
7 |
Correct |
45 ms |
416 KB |
Output is correct |
8 |
Correct |
74 ms |
424 KB |
Output is correct |
9 |
Correct |
141 ms |
464 KB |
Output is correct |
10 |
Correct |
51 ms |
580 KB |
Output is correct |
11 |
Correct |
67 ms |
596 KB |
Output is correct |
12 |
Correct |
44 ms |
452 KB |
Output is correct |
13 |
Execution timed out |
4075 ms |
972 KB |
Time limit exceeded |
14 |
Halted |
0 ms |
0 KB |
- |