Submission #120842

#TimeUsernameProblemLanguageResultExecution timeMemory
120842faustaadpSeats (IOI18_seats)C++17
5 / 100
4098 ms47608 KiB
#include "seats.h"
#include<bits/stdc++.h>
typedef long long ll;
#define pb push_back
#define mp make_pair
#define fi first
#define se second
using namespace std;
ll x[2][1010101],n,i,j;
void give_initial_chart(int H, int W, std::vector<int> R, std::vector<int> C) 
{
	for(i=0;i<H*W;i++)
	{
		x[0][i]=R[i];
		x[1][i]=C[i];
	}
	n=H*W;
}
ll quemi(ll ff,ll aa,ll bb)
{
	ll ii,H=1e18;
	for(ii=aa;ii<=bb;ii++)
		H=min(H,x[ff][ii]);
	return H;
}
ll quema(ll ff,ll aa,ll bb)
{
	ll ii,H=-1e18;
	for(ii=aa;ii<=bb;ii++)
		H=max(H,x[ff][ii]);
	return H;
}
int swap_seats(int a, int b) 
{
	swap(x[1][a],x[1][b]);
	swap(x[0][a],x[0][b]);
	ll hz=0;
	//cout<<"A";
	//return 0;
	for(i=0;i<n;i++)
	{
		ll mx=quemi(0,0,i);
		ll my=quemi(1,0,i);
		ll Mx=quema(0,0,i);
		ll My=quema(1,0,i);
		ll tem=(Mx-mx+1)*(My-my+1);
	//	cout<<i<<"    "<<mx<<" "<<my<<"  "<<Mx<<" "<<My<<"_ _ _"<<tem<<"\n";
		if(i+1==tem)
		{
	//		cout<<i<<"_\n";	
			hz++;
		}
		i=max(i,tem-2);
	}
  	return hz;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...