Codeforces Round #594 DIV1 B問題/DIV2 D2問題 - The World Is Just a Programming Task (Hard Version)

Source

Codeforces Round #594 DIV1 B問題 (1250pt)
Codeforces Round #594 DIV2 D2問題 (1500pt)
Problem description

問題概要

省略

解法

省略

cLayversion 20191102-1)のコード

C++に変換後のコードはこちら

//no-unlocked
int N;
char S[300002];

int sz, lis[300002];

{
  int k, mn, y, f, cnt;
  int res, res1, res2, ini;
  rd(N,S);

  k = mn = 0;
  rep(i,N){
    if[S[i]=='(', k++, k--];
    mn <?= k;
  }
  if(k){
    wt(0);
    wt(1,1);
    return 0;
  }

  k = 0;
  res = res1 = res2 = 0;
  rep(i,N){
    if[S[i]=='(', k++, k--];
    if(k==mn) res++, lis[sz++] = i;
  }
  ini = res;

  rep(m,sz){
    k = 0;
    y = if[m==sz-1, lis[0] + N, lis[m+1]];
    f = -1;
    rep(i,lis[m]+1,y){
      if[S[i%N]=='(', k++, k--];
      if(k<2) f=-1, cnt=0;
      if(k==2 && f==-1) f = i;
      if(k==2) cnt++;
      if(k==2 && ini+cnt > res){
        res = ini+cnt;
        res1 = f%N;
        res2 = (i+1)%N;
      }
    }
  }

  rep(m,sz){
    k = 0;
    y = if[m==sz-1, lis[0] + N, lis[m+1]];
    cnt = 0;
    rep(i,lis[m]+1,y){
      if[S[i%N]=='(', k++, k--];
      if(k==1) cnt++;
    }
    if(cnt > res){
      res = cnt;
      res1 = (lis[m]+1) % N;
      res2 = y % N;
    }
  }

  wt(res);
  wt(res1+1,res2+1);
}

Current time: 2021年09月27日22時13分28秒
Last modified: 2019年11月03日21時26分52秒 (by laycrs)
Tags: Competitive_Programming_Incomplete Codeforces CF594 CF_Div1_B CF_Div2_D
トップページに戻る

Logged in as: unknown user (not login)

ログイン: