Submission #64377634


Source Code Expand

#include<cstdio>
#include<algorithm>
using namespace std;
#define ll long long int
#define mod 998244353
struct mint{int _;mint(){_=0;}mint(ll a){_=a%mod;if(_<0)_+=mod;}};
mint operator+(mint a,mint b){a._+=b._;if(a._>=mod)a._-=mod;return a;}
mint operator-(mint a,mint b){a._-=b._;if(a._<0)a._+=mod;return a;}
mint operator*(mint a,mint b){a._=(int)((ll)a._*b._%mod);return a;}
mint operator+=(mint& a,mint b){a._+=b._;if(a._>=mod)a._-=mod;return a;}
mint operator-=(mint& a,mint b){a._-=b._;if(a._<0)a._+=mod;return a;}
mint operator*=(mint& a,mint b){a._=(int)((ll)a._*b._%mod);return a;}
mint pow(mint a,int b){mint c=1;while(b>0){if(b&1)c*=a;a*=a;b>>=1;}return c;}
mint inv(mint a){return pow(a,mod-2);}
mint fac[10010000],ifac[10010000];
mint C(int a,int b){if(b<0||b>a)return 0;return fac[a]*ifac[b]*ifac[a-b];}
mint iC(int a,int b){if(b<0||b>a)return 0;return ifac[a]*fac[b]*fac[a-b];}
void initC(int n){fac[0]=1;for(int i=1;i<=n;i++)fac[i]=fac[i-1]*i;
ifac[n]=inv(fac[n]);for(int i=n;i>=1;i--){ifac[i-1]=ifac[i]*i;}}

int n,k; char ch,lst;
int cnt=0,sum=0,maxv=0,pos=-1;

int main(void)
{
	scanf("%d%d",&n,&k);
	initC(n+100); n-=k;
	for(int i=0;i<k;i++){
		scanf(" %c",&ch);
		if(sum==0) cnt+=2;
		if(ch=='(') sum++;
		if(ch==')') sum--;
		maxv=max(maxv,sum);
		if(lst==')'&&ch==')'&&pos==-1)
			pos=cnt;
		lst=ch;
	}
	if(maxv==1){
		mint ans=0,p2=1;
		for(int i=0;i<=n;i++){
			ans+=p2*C(n-i+k-1,k-1);
			p2+=p2;
		}
		printf("%d\n",ans);
		return 0;
	}
	int a=pos,b=cnt+2-pos;
	mint ans=C(n+a+b/2-1,a+b/2-1);
	for(int i=1;i<=b/2;i++)
		ans+=C(n-1+a+b/2,a+b/2);
	printf("%d\n",ans);
	return 0;
}

Submission Info

Submission Time
Task B - Maximum Bracket Subsequence
User f_u_c_k_CCF
Language C++ 20 (gcc 12.2)
Score 900
Code Size 1657 Byte
Status AC
Exec Time 181 ms
Memory 79936 KiB

Compile Error

Main.cpp: In function ‘int main()’:
Main.cpp:44:26: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘mint’ [-Wformat=]
   44 |                 printf("%d\n",ans);
      |                         ~^    ~~~
      |                          |    |
      |                          int  mint
Main.cpp:51:18: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘mint’ [-Wformat=]
   51 |         printf("%d\n",ans);
      |                 ~^    ~~~
      |                  |    |
      |                  int  mint
Main.cpp:26:14: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   26 |         scanf("%d%d",&n,&k);
      |         ~~~~~^~~~~~~~~~~~~~
Main.cpp:29:22: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   29 |                 scanf(" %c",&ch);
      |                 ~~~~~^~~~~~~~~~~

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 900 / 900
Status
AC × 4
AC × 63
Set Name Test Cases
Sample 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 00_sample_04.txt
All 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 00_sample_04.txt, 01_random_case_01.txt, 01_random_case_02.txt, 01_random_case_03.txt, 01_random_case_04.txt, 01_random_case_05.txt, 01_random_case_06.txt, 01_random_case_07.txt, 01_random_case_08.txt, 01_random_case_09.txt, 01_random_case_10.txt, 01_random_case_11.txt, 01_random_case_12.txt, 01_random_case_13.txt, 01_random_case_14.txt, 01_random_case_15.txt, 01_random_case_16.txt, 02_simple_case_01.txt, 02_simple_case_02.txt, 02_simple_case_03.txt, 02_simple_case_04.txt, 02_simple_case_05.txt, 02_simple_case_06.txt, 02_simple_case_07.txt, 02_simple_case_08.txt, 02_simple_case_09.txt, 02_simple_case_10.txt, 02_simple_case_11.txt, 02_simple_case_12.txt, 03_max_case_01.txt, 03_max_case_02.txt, 03_max_case_03.txt, 03_max_case_04.txt, 03_max_case_05.txt, 03_max_case_06.txt, 03_max_case_07.txt, 03_max_case_08.txt, 03_max_case_09.txt, 03_max_case_10.txt, 03_max_case_11.txt, 03_max_case_12.txt, 03_max_case_13.txt, 03_max_case_14.txt, 03_max_case_15.txt, 03_max_case_16.txt, 03_max_case_17.txt, 03_max_case_18.txt, 03_max_case_19.txt, 03_max_case_20.txt, 04_corner_01.txt, 04_corner_02.txt, 04_corner_03.txt, 04_corner_04.txt, 04_corner_05.txt, 04_corner_06.txt, 05_handmade_01.txt, 05_handmade_02.txt, 05_handmade_03.txt, 05_handmade_04.txt, 05_handmade_05.txt
Case Name Status Exec Time Memory
00_sample_01.txt AC 31 ms 79824 KiB
00_sample_02.txt AC 31 ms 79768 KiB
00_sample_03.txt AC 31 ms 79916 KiB
00_sample_04.txt AC 116 ms 79780 KiB
01_random_case_01.txt AC 62 ms 79824 KiB
01_random_case_02.txt AC 80 ms 79920 KiB
01_random_case_03.txt AC 69 ms 79820 KiB
01_random_case_04.txt AC 84 ms 79752 KiB
01_random_case_05.txt AC 85 ms 79792 KiB
01_random_case_06.txt AC 78 ms 79832 KiB
01_random_case_07.txt AC 54 ms 79792 KiB
01_random_case_08.txt AC 129 ms 79908 KiB
01_random_case_09.txt AC 60 ms 79828 KiB
01_random_case_10.txt AC 69 ms 79936 KiB
01_random_case_11.txt AC 81 ms 79836 KiB
01_random_case_12.txt AC 70 ms 79768 KiB
01_random_case_13.txt AC 103 ms 79924 KiB
01_random_case_14.txt AC 88 ms 79796 KiB
01_random_case_15.txt AC 61 ms 79816 KiB
01_random_case_16.txt AC 121 ms 79832 KiB
02_simple_case_01.txt AC 68 ms 79828 KiB
02_simple_case_02.txt AC 67 ms 79932 KiB
02_simple_case_03.txt AC 85 ms 79792 KiB
02_simple_case_04.txt AC 78 ms 79768 KiB
02_simple_case_05.txt AC 98 ms 79896 KiB
02_simple_case_06.txt AC 68 ms 79752 KiB
02_simple_case_07.txt AC 106 ms 79924 KiB
02_simple_case_08.txt AC 128 ms 79924 KiB
02_simple_case_09.txt AC 100 ms 79908 KiB
02_simple_case_10.txt AC 117 ms 79816 KiB
02_simple_case_11.txt AC 108 ms 79892 KiB
02_simple_case_12.txt AC 91 ms 79920 KiB
03_max_case_01.txt AC 135 ms 79900 KiB
03_max_case_02.txt AC 134 ms 79768 KiB
03_max_case_03.txt AC 136 ms 79820 KiB
03_max_case_04.txt AC 135 ms 79924 KiB
03_max_case_05.txt AC 135 ms 79924 KiB
03_max_case_06.txt AC 134 ms 79748 KiB
03_max_case_07.txt AC 134 ms 79772 KiB
03_max_case_08.txt AC 134 ms 79788 KiB
03_max_case_09.txt AC 135 ms 79916 KiB
03_max_case_10.txt AC 135 ms 79752 KiB
03_max_case_11.txt AC 134 ms 79780 KiB
03_max_case_12.txt AC 134 ms 79916 KiB
03_max_case_13.txt AC 134 ms 79932 KiB
03_max_case_14.txt AC 136 ms 79788 KiB
03_max_case_15.txt AC 140 ms 79936 KiB
03_max_case_16.txt AC 134 ms 79908 KiB
03_max_case_17.txt AC 134 ms 79924 KiB
03_max_case_18.txt AC 134 ms 79824 KiB
03_max_case_19.txt AC 135 ms 79936 KiB
03_max_case_20.txt AC 135 ms 79784 KiB
04_corner_01.txt AC 154 ms 79816 KiB
04_corner_02.txt AC 149 ms 79896 KiB
04_corner_03.txt AC 88 ms 79900 KiB
04_corner_04.txt AC 172 ms 79820 KiB
04_corner_05.txt AC 72 ms 79812 KiB
04_corner_06.txt AC 53 ms 79832 KiB
05_handmade_01.txt AC 31 ms 79928 KiB
05_handmade_02.txt AC 31 ms 79836 KiB
05_handmade_03.txt AC 116 ms 79916 KiB
05_handmade_04.txt AC 181 ms 79768 KiB
05_handmade_05.txt AC 134 ms 79812 KiB