効果の件名:昔のタイトルを行うには
ソリューション:
カードのポイント:
C ++コード:
#pragma GCC最適化( "Ofast") の#pragma GCCの最適化( "ループをアンロール") の#pragma GCC対象( "SSE、SSE2、SSE3、SSSE3、SSE4、POPCNT、ABM、MMX、AVX、曲=ネイティブ") #含む<アルゴリズム> の#include <ランダム> の#include <cstdioを> する#include <cstdlib> の#include <CTIME> の#define MAXN 1010 の#define長い CONST長い二EPS = 1E-8。 インライン長い二重ABS(長いダブルX){x <0の戻り?-x:X; } 構造体ポイント{ int型X、Y。 ISR BOOL; 長いダブルB; ポイント(){} ポイント(INT __X、INT __y、BOOL __isR):X(__ X)、Y(__ Y)、ISR(__ ISR)、B(__ X){} インラインブール演算子==(constのポイント& } インライン長いダブルスロープ(CONSTポイント&LHS、CONSTポイント&RHS){ リターン(lhs.y - rhs.y)/ static_castを<長い二>(lhs.x - rhs.x)。 } インラインブールCMP(INT A、INT B){Pを返す[A] .B <P [B] .B。} インラインINT記号(長いダブルX){X <-EPS戻り?-1:X> EPS; } のstd :: MT19937 RD(時間(0))。 int型nは、totR、totB。 INT R [MAXN]、B [MAXN]、RNK [MAXN]。 int型ANS; ボイドCALC(){ STD ::ソート(RNK + 1、RNK + N + 1、CMP)。 {(; L <= N L = R INT 1 = 1、R、CNT [2]、RESの= 0)ため 、R = L。 CNT [0] = CNT [1] = 0; 一方、(R <= N && P [RNK [L]] == P [RNK [R]) ++ CNT [P [RNK [R] ISR。]、++ R。 RES + = CNT [1]。 ANS =のstd :: MAX(ANS、RES); IF(CNT [0])RES = CNT [1]。 } ボイドは(){解決 totR INT __B = RD()%totB、__R = RD()%と、 点_R = P [R [__ R]、_B = P [B [__ B]。 もし(_R.x == _B.x)リターン。 CONST長い二重K =勾配(_R、_B)、B = _R.y - _R.x * K。 以下のために(; iは= N <; I = 1のとき、INTレジスタ++ I)P [i]は.B = P [i]は.Y - P [i]は.X * K。 長い二分= 1E20、最大= -1e20。 用(INT * I = B; I = B + totB; ++ I!){ int型__s =記号(P [* I] .B - B)。 IF(__s){ IF(__s == 1)分= STD ::分(分、P [* I] .B)。 他に最大=のstd :: MAX(最大、P [* I] .B)。 } } int型RESM = 1、RESM = 1。 {(!; I = R + totR ++ I INT * I = R)のために INT __s =記号(P [* I] .B - B)。 IF(__s){ IF(__s == 1)RESM + =(P [* I] .B <=分+ EPS)。 他のRESM + =(P [* i]は.B> =最大- EPS)。 } } ANS = STD :: MAX(ANS、STD :: MAX(RESM、RESM))。 } int型のmain(){ scanf関数( "%のD"、&N); (I = 1、X、Y int型I ++; iが<= N)のために{ 静的チャーCH。 scanf関数( "%D%D%1"、&X&Y、&CH)。 P [I] =点(x、y、CH == 'R'); RNK [I] = I。 IF(CH == 'R')R [totR ++] = I。 他のB [totB ++] = I; } IF(totB == 0 || totR == 0){ のprintf( "%Dを\ n"、totR)。 0を返します。 } CALC()。 (真){ながら ため(INT i = 1; iが= 10 <。 もし(クロック()/はstatic_cast <ダブル>(CLOCKS_PER_SEC)> 0.998)破ります。 } のprintf( "%d個の\ n"、ANS)。 0を返します。 }