#include <iostream> #include <cstring>   using namespace std; typedef long long ll; int mod = 998244353; template<typename T> void read(T &x){     x = 0;char ch = getchar();ll f = 1;     while(!isdigit(ch)){if(ch == '-')f*=-1;ch=getchar();}     while(isdigit(ch)){x = x*10+ch-48;ch=getchar();}x*=f; } inline int mul(int x,int y){return 1ll*x*y%mod;} inline int add(int x,int y){return x+y>=mod?x+y-mod:x+y;} inline int sub(int x,int y){return x-y<0?x-y+mod:x-y;} inline int sq(int x){return 1ll*x*x%mod;} int pow(int a,int b){return b == 0 ? 1 : ( b&1 ? mul(a,sq(pow(a,b/2))) : sq(pow(a,b/2)));}   int n,k,a[1000010]; int main(){     read(n);read(k);     for(int i=1;i<=n;i++){         read(a[i]);     }     int ans = 0,md = 1,cnt = 0;     for(int i=1;i<=k;i++){         if(a[i] == 0){             cnt++;         }else{             md = mul(md,a[i]);         }     }     for(int i=1;i+k-1<=n;i++){         if(!cnt)ans = max(ans,md);         if(a[i] == 0)cnt--;         else md = mul(md,pow(a[i],mod-2));         if(a[i+k] == 0)cnt++;         else md = mul(md,a[i+k]);     }     cout<<ans<<endl;     return 0; } 蒟蒻默默的问一句,为什么c题题解将int改成long long就会WA了呢
点赞 评论

相关推荐

牛客网
牛客网在线编程
牛客网题解
牛客企业服务