D1T2の 時間複雑度(アナログ)
難易度は/特定のテストデータをラフ紙にそれぞれのケースを考慮しなければならない患者を保持&3.複数のグループを作成して処理するコードカードを再生するための1. 2.テストです
#include <ビット/ STDC ++ H> に#define RI INTレジスタ の#define LL長い長 の#defineため(I、L、R)のための(RI I = L、I <= R; I ++) の#define Dfor(I、R 、L)は(RI I = R; I> = L; i--) 使用して 名前空間STDを、 文字列A、B; int型銭、COM、CIR、使用[ 27 ]、G [ 27 ]、プレックス、行く、広告[ 100 ]、MAXX、N、O; インライン{read()はちゃいます LL F = 1、和= 0 。 チャー CH = GETCHAR()。 一方、(isdigit(CH)!){ 場合(CH == ' - ')、F = - 1 ; CH = GETCHAR();} ながら(isdigit(CH)){合計=(合計<< 1)+(合計< < 3)+(CH ^ 48)、CH = GETCHAR();} 戻り * F 和。 } INT メイン(){ O = )(読み取ります。 一方(O> 0 ){ 銭 = comの= CIR =プレックス=行く= MAXX = N = 0 ; O - ; memsetの(使用、0、はsizeof(使用))、memsetの(広告、0、はsizeof (AD))。 一方、(B [ 0 ]!= ' O ' ){= B; cinを>> B; } 以下のために(INT iが= 0 ; I <a.length(); I ++)SEN =銭* 10 + [I] - ' 0 ' 。 以下のために(INT iが= 4 ; I <てb.length() - 1 ; I ++)COM = COM * 10 + B [I] - ' 0 ' 。 一方、(SEN> 0 ){ SEN - ; cinを>> ; もし([ 0 ] == ' F ' ){ CIR ++; cinを>> ; もし(使用[ 0 ] - 96 ])CIR = - 1 。 他の使用[ 0 ] - 96 ] = 1、G [CIR] = [ 0 ] - 96 。 CIN >> B; もし([ 0!] = ' N ' && B [ 0 ] == ' N ' && ==行く0)プレックス++、広告[CIR] = 1 ; そう であれば(((a.length()==てb.length()&&> B)||(a.length()>てb.length())||([ 0 ] == ' N ' [B && 0!] = ' N '))&& ==行く0 =行く)1、N = CIR; } 他の{ MAXX = MAX(MAXX、プレックス);使用[G [CIR] = 0 ; もし(AD [CIR] == 1)プレックス- 、AD [CIR] = 0 ; CIR - ; もし(N> 0 && CIR <n)を行く= N = 0 ; } もし(CIR == - 1)のprintf(" ERR \ n ")、SEN = - 1 。 } もし(CIR> 0)のprintf(" ERR \ N " ); もし(CIR == 0 && MAXX == COM)のprintf(" はい\ N " ); もし(CIR == 0 && MAXX = comの!)のprintf(" ノー\ N " ); } リターン 0 ; }