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 |
|
|
| 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 |