Submission #991610

# Submission time Handle Problem Language Result Execution time Memory
991610 2024-06-02T16:15:06 Z Lalic Seats (IOI18_seats) C++17
17 / 100
4000 ms 48300 KB
#include "seats.h"
#include <bits/stdc++.h>
using namespace std;

#define fi first
#define se second
#define pb push_back
#define all(x) x.begin(), x.end()
#define allr(x) x.rbegin(), x.rend()
#define mp make_pair

typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;

const int INF = 0x3f3f3f3f;
const int MAXN = 1e6+10;

pii valR[MAXN], valC[MAXN];
int ans=1;
vector<int> r, c;

void give_initial_chart(int H, int W, vector<int> R, vector<int> C) {
	valR[0]={R[0], R[0]};
	valC[0]={C[0], C[0]};
	r=R; c=C;
	
	for(int i=1;i<(int)R.size();i++){
		valR[i]={min(valR[i-1].fi, R[i]), max(valR[i-1].se, R[i])};
		valC[i]={min(valC[i-1].fi, C[i]), max(valC[i-1].se, C[i])};
		if((valR[i].se-valR[i].fi+1)*(valC[i].se-valC[i].fi+1)==i+1) ans++;
	}
}

int swap_seats(int a, int b) {
	if(a>b) swap(a, b);
	
	pii x, y;
	if(!a) x={r[b], r[b]}, y={c[b], c[b]};
	else x=valR[a-1], y=valC[a-1];
	
	swap(r[a], r[b]);
	swap(c[a], c[b]);
	
	for(int i=a;i<=b;i++){
		if((valR[i].se-valR[i].fi+1)*(valC[i].se-valC[i].fi+1)==i+1) ans--;
		
		x.fi=min(x.fi, r[i]); x.se=max(x.se, r[i]);
		y.fi=min(y.fi, c[i]); y.se=max(y.se, c[i]);
		
		valR[i]=x;
		valC[i]=y;
		
		if((valR[i].se-valR[i].fi+1)*(valC[i].se-valC[i].fi+1)==i+1) ans++;
	}
	
	return ans;
}
# Verdict Execution time Memory Grader output
1 Correct 2 ms 2652 KB Output is correct
2 Correct 2 ms 2652 KB Output is correct
3 Correct 2 ms 2508 KB Output is correct
4 Correct 2 ms 2592 KB Output is correct
5 Correct 2 ms 2648 KB Output is correct
6 Correct 2 ms 2652 KB Output is correct
7 Correct 2 ms 2652 KB Output is correct
8 Correct 2 ms 2652 KB Output is correct
9 Correct 2 ms 2652 KB Output is correct
10 Correct 2 ms 2652 KB Output is correct
11 Correct 2 ms 2652 KB Output is correct
12 Correct 2 ms 2652 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 2652 KB Output is correct
2 Correct 2 ms 2652 KB Output is correct
3 Correct 2 ms 2508 KB Output is correct
4 Correct 2 ms 2592 KB Output is correct
5 Correct 2 ms 2648 KB Output is correct
6 Correct 2 ms 2652 KB Output is correct
7 Correct 2 ms 2652 KB Output is correct
8 Correct 2 ms 2652 KB Output is correct
9 Correct 2 ms 2652 KB Output is correct
10 Correct 2 ms 2652 KB Output is correct
11 Correct 2 ms 2652 KB Output is correct
12 Correct 2 ms 2652 KB Output is correct
13 Correct 46 ms 3016 KB Output is correct
14 Correct 46 ms 3016 KB Output is correct
15 Correct 45 ms 3016 KB Output is correct
16 Correct 43 ms 3000 KB Output is correct
17 Correct 45 ms 2908 KB Output is correct
18 Correct 45 ms 2904 KB Output is correct
19 Correct 46 ms 3008 KB Output is correct
20 Correct 59 ms 3000 KB Output is correct
21 Correct 56 ms 3000 KB Output is correct
22 Correct 45 ms 3016 KB Output is correct
# Verdict Execution time Memory Grader output
1 Execution timed out 4086 ms 47676 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 69 ms 3036 KB Output is correct
2 Correct 79 ms 9852 KB Output is correct
3 Correct 227 ms 47796 KB Output is correct
4 Correct 282 ms 47696 KB Output is correct
5 Correct 221 ms 47696 KB Output is correct
6 Correct 291 ms 47796 KB Output is correct
7 Correct 222 ms 47696 KB Output is correct
8 Correct 226 ms 47796 KB Output is correct
9 Correct 221 ms 47696 KB Output is correct
10 Correct 221 ms 47696 KB Output is correct
11 Correct 217 ms 47696 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 13 ms 3896 KB Output is correct
2 Correct 13 ms 4056 KB Output is correct
3 Correct 23 ms 4056 KB Output is correct
4 Correct 55 ms 3944 KB Output is correct
5 Correct 436 ms 4360 KB Output is correct
6 Execution timed out 4043 ms 48300 KB Time limit exceeded
7 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 2652 KB Output is correct
2 Correct 2 ms 2652 KB Output is correct
3 Correct 2 ms 2508 KB Output is correct
4 Correct 2 ms 2592 KB Output is correct
5 Correct 2 ms 2648 KB Output is correct
6 Correct 2 ms 2652 KB Output is correct
7 Correct 2 ms 2652 KB Output is correct
8 Correct 2 ms 2652 KB Output is correct
9 Correct 2 ms 2652 KB Output is correct
10 Correct 2 ms 2652 KB Output is correct
11 Correct 2 ms 2652 KB Output is correct
12 Correct 2 ms 2652 KB Output is correct
13 Correct 46 ms 3016 KB Output is correct
14 Correct 46 ms 3016 KB Output is correct
15 Correct 45 ms 3016 KB Output is correct
16 Correct 43 ms 3000 KB Output is correct
17 Correct 45 ms 2908 KB Output is correct
18 Correct 45 ms 2904 KB Output is correct
19 Correct 46 ms 3008 KB Output is correct
20 Correct 59 ms 3000 KB Output is correct
21 Correct 56 ms 3000 KB Output is correct
22 Correct 45 ms 3016 KB Output is correct
23 Execution timed out 4086 ms 47676 KB Time limit exceeded
24 Halted 0 ms 0 KB -