답안 #831494

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
831494 2023-08-20T09:49:38 Z tolbi 자리 배치 (IOI18_seats) C++17
5 / 100
4000 ms 27720 KB
#include <bits/stdc++.h>
using namespace std;
#include "seats.h"
#define tol(bi) (1LL<<((int)(bi)))
struct BIT{
	BIT(){}
	vector<vector<int>> arr;
	void init(int n, int m){
		arr.resize(n,vector<int>(m,0));
	}
	void update(int x, int y, int val){
		arr[x][y]=val;
	}
	int minq(int xl, int xr, int yl, int yr){
		int rval = 23232323;
		for (int i = xl; i <= xr; i++){
			for (int j = yl; j <= yr; j++){
				rval=min(rval,arr[i][j]);
			}
		}
		return rval;
	}
	int maxq(int xl, int xr, int yl, int yr){
		int rval = 0;
		for (int i = xl; i <= xr; i++){
			for (int j = yl; j <= yr; j++){
				rval=max(rval,arr[i][j]);
			}
		}
		return rval;
	}
};
vector<int> R,C;
BIT fenwik;
int H,W;
void give_initial_chart(int _H, int _W, std::vector<int> _R, std::vector<int> _C) {
	R=_R,C=_C;
	H=_H,W=_W;
	fenwik.init(H,W);
	for (int i = 0; i < R.size(); ++i)
	{
		fenwik.update(R[i],C[i],i);
	}
}
int swap_seats(int a, int b) {
	swap(R[a],R[b]);
	swap(C[a],C[b]);
	fenwik.update(R[a],C[a],a);
	fenwik.update(R[b],C[b],b);
	int crmax = 0;
	int ans = 1;
	int xl=R[0],xr=R[0];
	int yl=C[0],yr=C[0];
	while (xl>0 || xr<H-1 || yl>0 || yr<W-1){
		int minel = 23232323;
		if (xl>0) minel=min(minel,fenwik.minq(0,xl-1,0,W-1));
		if (xr+1<H) minel=min(minel,fenwik.minq(xr+1,H-1,0,W-1));
		if (yl>0) minel=min(minel,fenwik.minq(xl,xr,0,yl-1));
		if (yr+1<W) minel=min(minel,fenwik.minq(xl,xr,yr+1,W-1));
		xr=max(xr,R[minel]);
		xl=min(xl,R[minel]);
		yr=max(yr,C[minel]);
		yl=min(yl,C[minel]);
		crmax=fenwik.maxq(xl,xr,yl,yr);
		if ((xr-xl+1)*(yr-yl+1)==crmax+1) ans++;
	}
	return ans;
}

Compilation message

seats.cpp: In function 'void give_initial_chart(int, int, std::vector<int>, std::vector<int>)':
seats.cpp:40:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   40 |  for (int i = 0; i < R.size(); ++i)
      |                  ~~^~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 340 KB Output is correct
2 Correct 3 ms 340 KB Output is correct
3 Correct 5 ms 340 KB Output is correct
4 Correct 7 ms 340 KB Output is correct
5 Correct 49 ms 376 KB Output is correct
6 Correct 6 ms 340 KB Output is correct
7 Correct 5 ms 340 KB Output is correct
8 Correct 8 ms 340 KB Output is correct
9 Correct 9 ms 372 KB Output is correct
10 Correct 5 ms 340 KB Output is correct
11 Correct 6 ms 340 KB Output is correct
12 Correct 23 ms 360 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 340 KB Output is correct
2 Correct 3 ms 340 KB Output is correct
3 Correct 5 ms 340 KB Output is correct
4 Correct 7 ms 340 KB Output is correct
5 Correct 49 ms 376 KB Output is correct
6 Correct 6 ms 340 KB Output is correct
7 Correct 5 ms 340 KB Output is correct
8 Correct 8 ms 340 KB Output is correct
9 Correct 9 ms 372 KB Output is correct
10 Correct 5 ms 340 KB Output is correct
11 Correct 6 ms 340 KB Output is correct
12 Correct 23 ms 360 KB Output is correct
13 Correct 744 ms 596 KB Output is correct
14 Correct 639 ms 596 KB Output is correct
15 Correct 746 ms 632 KB Output is correct
16 Execution timed out 4056 ms 1108 KB Time limit exceeded
17 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 4050 ms 27720 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 729 ms 596 KB Output is correct
2 Execution timed out 4041 ms 4028 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 14 ms 1360 KB Output is correct
2 Correct 20 ms 1248 KB Output is correct
3 Correct 234 ms 1316 KB Output is correct
4 Execution timed out 4048 ms 828 KB Time limit exceeded
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 340 KB Output is correct
2 Correct 3 ms 340 KB Output is correct
3 Correct 5 ms 340 KB Output is correct
4 Correct 7 ms 340 KB Output is correct
5 Correct 49 ms 376 KB Output is correct
6 Correct 6 ms 340 KB Output is correct
7 Correct 5 ms 340 KB Output is correct
8 Correct 8 ms 340 KB Output is correct
9 Correct 9 ms 372 KB Output is correct
10 Correct 5 ms 340 KB Output is correct
11 Correct 6 ms 340 KB Output is correct
12 Correct 23 ms 360 KB Output is correct
13 Correct 744 ms 596 KB Output is correct
14 Correct 639 ms 596 KB Output is correct
15 Correct 746 ms 632 KB Output is correct
16 Execution timed out 4056 ms 1108 KB Time limit exceeded
17 Halted 0 ms 0 KB -