Language: C++

#define _USE_MATH_DEFINES
#define _SILENCE_CXX17_C_HEADER_DEPRECATION_WARNING
#define _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS
#define _CRT_SECURE_NO_WARNINGS
#include<cstdio>
#include<string>
#include<cassert>
#include<algorithm>
#include<cmath>
#include<iostream>
#include<unordered_set>
#include <emmintrin.h>
#include <immintrin.h>

using namespace std;

#define dprint(Exp,...) if(Exp){fprintf(stderr, __VA_ARGS__);}
#define printe(...) fprintf(stderr, __VA_ARGS__);
//#define printe(...) void();
#define printE(...) fprintf(stderr, __VA_ARGS__);
//#define printE(...) void();


#define PrtExp(_Exp)  cerr<< #_Exp <<" = "<< (_Exp)
#define PrtExpN(_Exp)  cerr<< #_Exp <<" = "<< (_Exp) <<"\n"

#define SINT(n) scanf("%d",&n)
#define SINT2(n,m) scanf("%d %d",&n,&m)
#define SINT3(n,m,o) scanf("%d %d %d",&n,&m,&o)
#define SINT4(n,m,o,P) scanf("%d %d %d %d",&n,&m,&o,&P)
#define SINT5(n,m,o,P,q) scanf("%d %d %d %d %d",&n,&m,&o,&P,&q)
#define SLL(n) scanf("%lld",&n)
#define SLL2(n,m) scanf("%lld %lld",&n,&m)
#define SLL3(n,m,o) scanf("%lld %lld %lld",&n,&m,&o)
#define SST(s) scanf("%s",s)
#define SCH(c) scanf("%c",&c)

#define GC() getchar()

#define PINT(n) printf("%d",(int)(n))
#define PINT2(n,m) printf("%d %d",(int)(n),(int)(m))
#define PINT3(n,m,l) printf("%d %d %d",(int)(n),(int)(m),(int)(l))
#define PLL(n) printf("%lld",(long long)(n))
#define PST(s) printf("%s",(s))
#define PCH(s) printf("%c",(s))

#define PINTN(n) printf("%d\n",(int)(n))
#define PINT2N(n,m) printf("%d %d\n",(int)(n),(int)(m))
#define PINT3N(n,m,l) printf("%d %d %d\n",(int)(n),(int)(m),(int)(l))
#define PLLN(n) printf("%lld\n",(long long)(n))
#define PSTN(s) printf("%s\n",(s))
#define PCHN(s) printf("%c\n",(s))

#define PSP() printf(" ")
#define PN() printf("\n")

#define PC(c) putchar(c)
#define CSP (' ')
#define SN ("\n")

#define rep(i,a) for(int i=0;i<a;i++)
#define reP(i,a) for(int i=0;i<=a;i++)
#define Rep(i,a) for(int i=a-1;i>=0;i--)
#define ReP(i,a) for(int i=a;i>=0;i--)

#define rEp(i,a) for(i=0;i<a;i++)
#define rEP(i,a) for(i=0;i<=a;i++)
#define REp(i,a) for(i=a-1;i>=0;i--)
#define REP(i,a) for(i=a;i>=0;i--)

#define repft(i,a,b) for(int i=a;i<b;i++)
#define repfT(i,a,b) for(int i=a;i<=b;i++)
#define Repft(i,a,b) for(int i=a-1;i>=b;i--)
#define RepfT(i,a,b) for(int i=a;i>=b;i--)

#define foreach(a,it) for(auto it = a.begin(); it != a.end(); ++it)

#define FILL(a,v) fill(begin(a),end(a), v)
#define FILL0(a) memset(a,0,sizeof(a))
#define FILL1(a) memset(a,-1,sizeof(a))

typedef long long ll;

typedef unsigned long long ull;
typedef pair<int, int> Pi;
typedef pair<ll, ll>   Pll;


const int INF = 1'010'000'000; // 0x3C33'6080
const ll INFLL = 0x1f1f1f1f1f1f1f1fLL;//2,242,545,357,980,376,863

template <class A, class B> inline ostream& operator<<(ostream& st, const pair<A, B>& P) { return st << "(" << P.first << "," << P.second << ")"; };
template <class A, class B> inline pair<A, B> operator+(const pair<A, B>& P, const pair<A, B>& Q) { return pair<A, B>(P.first + Q.first, P.second + Q.second); };
template <class A, class B> inline pair<A, B> operator-(const pair<A, B>& P, const pair<A, B>& Q) { return pair<A, B>(P.first - Q.first, P.second - Q.second); };

#define fs  first
#define sc  second

int bitCount(unsigned int bits) {
	bits = (bits & 0x55555555) + (bits >> 1 & 0x55555555);    //  2bitごとに計算
	bits = (bits & 0x33333333) + (bits >> 2 & 0x33333333);    //  4bitごとに計算
	bits = (bits & 0x0f0f0f0f) + (bits >> 4 & 0x0f0f0f0f);    //  8bitごとに計算
	bits = (bits & 0x00ff00ff) + (bits >> 8 & 0x00ff00ff);    //  16ビットごとに計算   
	return (bits & 0x0000ffff) + (bits >> 16);    //  32ビット分を計算   
}



int main() {
	int n;
	
	int miX[3];
	int maX[3];
	int miY[3];
	int maY[3];

	rep(i, 3) {
		miX[i] = miY[i] = INF;
		maX[i] = maY[i] = -INF;
	}
	cin >> n;
	rep(i, n) {
		int x, y;
		string s;
		cin >> x >> y >> s;
		x *= 2;
		y *= 2;
		int dx = (s[0] == 'R' ? 2 : s[0] == 'L' ? 0 : 1);
		int dy = (s[0] == 'U' ? 2 : s[0] == 'D' ? 0 : 1);

		miX[dx] = min(miX[dx], x);
		miY[dy] = min(miY[dy], y);
		maX[dx] = max(maX[dx], x);
		maY[dy] = max(maY[dy], y);
	}
	int X[8];
	int Y[8];

	int dx[8];
	int dy[8];
	int cx = 0;
	int cy = 0;
	rep(i, 3) {
		if (miX[i] != INF) {
			X[cx] = miX[i];
			dx[cx] = i-1;
			++cx;
		}
		if (maX[i] != -INF) {
			X[cx] = maX[i];
			dx[cx] = i-1;
			++cx;
		}
		if (miY[i] != INF) {
			Y[cy] = miY[i];
			dy[cy] = i-1;
			++cy;
		}
		if (maY[i] != -INF) {
			Y[cy] = maY[i];
			dy[cy] = i-1;
			++cy;
		}
	}

	__m256i XX = _mm256_setr_epi32(X[0], X[1], X[2], X[3], X[4], X[5], X[6], X[7]);
	__m256i YY = _mm256_setr_epi32(Y[0], Y[1], Y[2], Y[3], Y[4], Y[5], Y[6], Y[7]);
	__m256i DX = _mm256_setr_epi32(dx[0], dx[1], dx[2], dx[3], dx[4], dx[5], dx[6], dx[7]);
	__m256i DY = _mm256_setr_epi32(dy[0], dy[1], dy[2], dy[3], dy[4], dy[5], dy[6], dy[7]);

	assert(cx <= 6);
	assert(cy <= 6);

	ll ret = INFLL;
	//rep(cc, 400000000) {
	for(int cc = 400000000; cc >= 0; --cc){
		int miX = INF;
		int miY = INF;
		int maX = -INF;
		int maY = -INF;
		if (cx >= 1) miX = min(miX, _mm256_extract_epi32(XX, 0));
		if (cx >= 1) maX = max(maX, _mm256_extract_epi32(XX, 0));
		if (cx >= 2) miX = min(miX, _mm256_extract_epi32(XX, 1));
		if (cx >= 2) maX = max(maX, _mm256_extract_epi32(XX, 1));
		if (cx >= 3) miX = min(miX, _mm256_extract_epi32(XX, 2));
		if (cx >= 3) maX = max(maX, _mm256_extract_epi32(XX, 2));
		if (cx >= 4) miX = min(miX, _mm256_extract_epi32(XX, 3));
		if (cx >= 4) maX = max(maX, _mm256_extract_epi32(XX, 3));
		if (cx >= 5) miX = min(miX, _mm256_extract_epi32(XX, 4));
		if (cx >= 5) maX = max(maX, _mm256_extract_epi32(XX, 4));
		if (cx >= 6) miX = min(miX, _mm256_extract_epi32(XX, 5));
		if (cx >= 6) maX = max(maX, _mm256_extract_epi32(XX, 5));

		if (cy >= 1) miY = min(miY, _mm256_extract_epi32(YY, 0));
		if (cy >= 1) maY = max(maY, _mm256_extract_epi32(YY, 0));
		if (cy >= 2) miY = min(miY, _mm256_extract_epi32(YY, 1));
		if (cy >= 2) maY = max(maY, _mm256_extract_epi32(YY, 1));
		if (cy >= 3) miY = min(miY, _mm256_extract_epi32(YY, 2));
		if (cy >= 3) maY = max(maY, _mm256_extract_epi32(YY, 2));
		if (cy >= 4) miY = min(miY, _mm256_extract_epi32(YY, 3));
		if (cy >= 4) maY = max(maY, _mm256_extract_epi32(YY, 3));
		if (cy >= 5) miY = min(miY, _mm256_extract_epi32(YY, 4));
		if (cy >= 5) maY = max(maY, _mm256_extract_epi32(YY, 4));
		if (cy >= 6) miY = min(miY, _mm256_extract_epi32(YY, 5));
		if (cy >= 6) maY = max(maY, _mm256_extract_epi32(YY, 5));

		ll v = ll(maX - miX) * (maY - miY);
		if (v < ret) {
			ret = v;
			//cout << "# " << cc << " " << ret * 0.25 << endl;
		}

		XX = _mm256_add_epi32(XX, DX);
		YY = _mm256_add_epi32(YY, DY);
	}
	//cout << ret << endl;
	printf("%.1f\n", ret*0.25);




}

Compiler output:
a.cc: In function 'int main()':
a.cc:166:86: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
  166 |         __m256i XX = _mm256_setr_epi32(X[0], X[1], X[2], X[3], X[4], X[5], X[6], X[7]);
      |                                                                                      ^
In file included from /usr/lib/gcc/x86_64-linux-gnu/14/include/immintrin.h:43,
                 from a.cc:13:
/usr/lib/gcc/x86_64-linux-gnu/14/include/avxintrin.h:1380:1: error: inlining failed in call to 'always_inline' '__m256i _mm256_setr_epi32(int, int, int, int, int, int, int, int)': target specific option mismatch
 1380 | _mm256_setr_epi32 (int __A, int __B, int __C, int __D,
      | ^~~~~~~~~~~~~~~~~
a.cc:169:39: note: called from here
  169 |         __m256i DY = _mm256_setr_epi32(dy[0], dy[1], dy[2], dy[3], dy[4], dy[5], dy[6], dy[7]);
      |                      ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/14/include/avxintrin.h:1380:1: error: inlining failed in call to 'always_inline' '__m256i _mm256_setr_epi32(int, int, int, int, int, int, int, int)': target specific option mismatch
 1380 | _mm256_setr_epi32 (int __A, int __B, int __C, int __D,
      | ^~~~~~~~~~~~~~~~~
a.cc:168:39: note: called from here
  168 |         __m256i DX = _mm256_setr_epi32(dx[0], dx[1], dx[2], dx[3], dx[4], dx[5], dx[6], dx[7]);
      |                      ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/14/include/avxintrin.h:1380:1: error: inlining failed in call to 'always_inline' '__m256i _mm256_setr_epi32(int, int, int, int, int, int, int, int)': target specific option mismatch
 1380 | _mm256_setr_epi32 (int __A, int __B, int __C, int __D,
      | ^~~~~~~~~~~~~~~~~
a.cc:167:39: note: called from here
  167 |         __m256i YY = _mm256_setr_epi32(Y[0], Y[1], Y[2], Y[3], Y[4], Y[5], Y[6], Y[7]);
      |                      ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/14/include/avxintrin.h:1380:1: error: inlining failed in call to 'always_inline' '__m256i _mm256_setr_epi32(int, int, int, int, int, int, int, int)': target specific option mismatch
 1380 | _mm256_setr_epi32 (int __A, int __B, int __C, int __D,
      | ^~~~~~~~~~~~~~~~~
a.cc:166:39: note: called from here
  166 |         __m256i XX = _mm256_setr_epi32(X[0], X[1], X[2], X[3], X[4], X[5], X[6], X[7]);
      |                      ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/gcc/x86_64-linux-gnu/14/include/immintrin.h:53:
/usr/lib/gcc/x86_64-linux-gnu/14/include/avx2intrin.h:119:1: error: inlining failed in call to 'always_inline' '__m256i _mm256_add_epi32(__m256i, __m256i)': target specific option mismatch
  119 | _mm256_add_epi32 (__m256i __A, __m256i __B)
      | ^~~~~~~~~~~~~~~~
a.cc:214:38: note: called from here
  214 |                 YY = _mm256_add_epi32(YY, DY);
      |                      ~~~~~~~~~~~~~~~~^~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/14/include/avx2intrin.h:119:1: error: inlining failed in call to 'always_inline' '__m256i _mm256_add_epi32(__m256i, __m256i)': target specific option mismatch
  119 | _mm256_add_epi32 (__m256i __A, __m256i __B)
      | ^~~~~~~~~~~~~~~~
a.cc:213:38: note: called from here
  213 |                 XX = _mm256_add_epi32(XX, DX);
      |                      ~~~~~~~~~~~~~~~~^~~~~~~~