10 条题解

  • 1
    @ 2024-12-29 16:22:53

    #include #include #include typedef __int128 LL; const int N=1100000; int n, p; LL a[N]; LL b[N],c[N]; const int SIZE=1<<25; char Buf[SIZE],*buf=Buf; #define getint(x) (x)=strtoll(buf,&buf,10) int main() { fread(Buf,SIZE,1,stdin); getint(n);getint(p); for (int i=1;i<=n;i++) getint(a[i]); b[1]=a[1]; LL now=a[1]>0?a[1]:0; for(int i=2;i<=n;i++) { b[i]=b[i-1]; now+=a[i]; b[i]=now>b[i]?now:b[i]; now=now>0?now:0; } c[1]=b[1]; c[2]=c[1]+b[1]; for(int i=3;i<=n;i++) c[i]=c[i-1]+(b[i-1]>0?b[i-1]:0); printf("%d\n", (int)((c[n]>c[1]?c[n]:c[1])%p)); return 0; }

    • 1
      @ 2024-12-29 16:22:48

      #include #include #include typedef __int128 LL; const int N=1100000; int n, p; LL a[N]; LL b[N],c[N]; const int SIZE=1<<25; char Buf[SIZE],*buf=Buf; #define getint(x) (x)=strtoll(buf,&buf,10) int main() { fread(Buf,SIZE,1,stdin); getint(n);getint(p); for (int i=1;i<=n;i++) getint(a[i]); b[1]=a[1]; LL now=a[1]>0?a[1]:0; for(int i=2;i<=n;i++) { b[i]=b[i-1]; now+=a[i]; b[i]=now>b[i]?now:b[i]; now=now>0?now:0; } c[1]=b[1]; c[2]=c[1]+b[1]; for(int i=3;i<=n;i++) c[i]=c[i-1]+(b[i-1]>0?b[i-1]:0); printf("%d\n", (int)((c[n]>c[1]?c[n]:c[1])%p)); return 0; }

      • 1
        @ 2024-12-29 16:22:43

        #include #include #include typedef __int128 LL; const int N=1100000; int n, p; LL a[N]; LL b[N],c[N]; const int SIZE=1<<25; char Buf[SIZE],*buf=Buf; #define getint(x) (x)=strtoll(buf,&buf,10) int main() { fread(Buf,SIZE,1,stdin); getint(n);getint(p); for (int i=1;i<=n;i++) getint(a[i]); b[1]=a[1]; LL now=a[1]>0?a[1]:0; for(int i=2;i<=n;i++) { b[i]=b[i-1]; now+=a[i]; b[i]=now>b[i]?now:b[i]; now=now>0?now:0; } c[1]=b[1]; c[2]=c[1]+b[1]; for(int i=3;i<=n;i++) c[i]=c[i-1]+(b[i-1]>0?b[i-1]:0); printf("%d\n", (int)((c[n]>c[1]?c[n]:c[1])%p)); return 0; }

        • 1
          @ 2024-12-29 16:22:38

          #include #include #include typedef __int128 LL; const int N=1100000; int n, p; LL a[N]; LL b[N],c[N]; const int SIZE=1<<25; char Buf[SIZE],*buf=Buf; #define getint(x) (x)=strtoll(buf,&buf,10) int main() { fread(Buf,SIZE,1,stdin); getint(n);getint(p); for (int i=1;i<=n;i++) getint(a[i]); b[1]=a[1]; LL now=a[1]>0?a[1]:0; for(int i=2;i<=n;i++) { b[i]=b[i-1]; now+=a[i]; b[i]=now>b[i]?now:b[i]; now=now>0?now:0; } c[1]=b[1]; c[2]=c[1]+b[1]; for(int i=3;i<=n;i++) c[i]=c[i-1]+(b[i-1]>0?b[i-1]:0); printf("%d\n", (int)((c[n]>c[1]?c[n]:c[1])%p)); return 0; }

          • 1
            @ 2024-12-29 16:22:30

            #include #include #include typedef __int128 LL; const int N=1100000; int n, p; LL a[N]; LL b[N],c[N]; const int SIZE=1<<25; char Buf[SIZE],*buf=Buf; #define getint(x) (x)=strtoll(buf,&buf,10) int main() { fread(Buf,SIZE,1,stdin); getint(n);getint(p); for (int i=1;i<=n;i++) getint(a[i]); b[1]=a[1]; LL now=a[1]>0?a[1]:0; for(int i=2;i<=n;i++) { b[i]=b[i-1]; now+=a[i]; b[i]=now>b[i]?now:b[i]; now=now>0?now:0; } c[1]=b[1]; c[2]=c[1]+b[1]; for(int i=3;i<=n;i++) c[i]=c[i-1]+(b[i-1]>0?b[i-1]:0); printf("%d\n", (int)((c[n]>c[1]?c[n]:c[1])%p)); return 0; }

            • 1
              @ 2024-12-29 16:22:26

              #include #include #include typedef __int128 LL; const int N=1100000; int n, p; LL a[N]; LL b[N],c[N]; const int SIZE=1<<25; char Buf[SIZE],*buf=Buf; #define getint(x) (x)=strtoll(buf,&buf,10) int main() { fread(Buf,SIZE,1,stdin); getint(n);getint(p); for (int i=1;i<=n;i++) getint(a[i]); b[1]=a[1]; LL now=a[1]>0?a[1]:0; for(int i=2;i<=n;i++) { b[i]=b[i-1]; now+=a[i]; b[i]=now>b[i]?now:b[i]; now=now>0?now:0; } c[1]=b[1]; c[2]=c[1]+b[1]; for(int i=3;i<=n;i++) c[i]=c[i-1]+(b[i-1]>0?b[i-1]:0); printf("%d\n", (int)((c[n]>c[1]?c[n]:c[1])%p)); return 0; }

              • 1
                @ 2024-12-29 16:22:21

                #include #include #include typedef __int128 LL; const int N=1100000; int n, p; LL a[N]; LL b[N],c[N]; const int SIZE=1<<25; char Buf[SIZE],*buf=Buf; #define getint(x) (x)=strtoll(buf,&buf,10) int main() { fread(Buf,SIZE,1,stdin); getint(n);getint(p); for (int i=1;i<=n;i++) getint(a[i]); b[1]=a[1]; LL now=a[1]>0?a[1]:0; for(int i=2;i<=n;i++) { b[i]=b[i-1]; now+=a[i]; b[i]=now>b[i]?now:b[i]; now=now>0?now:0; } c[1]=b[1]; c[2]=c[1]+b[1]; for(int i=3;i<=n;i++) c[i]=c[i-1]+(b[i-1]>0?b[i-1]:0); printf("%d\n", (int)((c[n]>c[1]?c[n]:c[1])%p)); return 0; }

                • 1
                  @ 2024-12-29 16:22:14

                  #include #include #include typedef __int128 LL; const int N=1100000; int n, p; LL a[N]; LL b[N],c[N]; const int SIZE=1<<25; char Buf[SIZE],*buf=Buf; #define getint(x) (x)=strtoll(buf,&buf,10) int main() { fread(Buf,SIZE,1,stdin); getint(n);getint(p); for (int i=1;i<=n;i++) getint(a[i]); b[1]=a[1]; LL now=a[1]>0?a[1]:0; for(int i=2;i<=n;i++) { b[i]=b[i-1]; now+=a[i]; b[i]=now>b[i]?now:b[i]; now=now>0?now:0; } c[1]=b[1]; c[2]=c[1]+b[1]; for(int i=3;i<=n;i++) c[i]=c[i-1]+(b[i-1]>0?b[i-1]:0); printf("%d\n", (int)((c[n]>c[1]?c[n]:c[1])%p)); return 0; }

                  • 1
                    @ 2024-12-29 16:21:47
                    #include<cstdio>
                    #include<cstring>
                    #include<cstdlib>
                    typedef __int128 LL;
                    const int N=1100000;
                    int n, p;
                    LL a[N];
                    LL b[N],c[N];
                    const int SIZE=1<<25;
                    char Buf[SIZE],*buf=Buf;
                    #define getint(x) (x)=strtoll(buf,&buf,10)
                    int main()
                    {
                        fread(Buf,SIZE,1,stdin);
                        getint(n);getint(p);
                        for (int i=1;i<=n;i++)
                            getint(a[i]);
                        b[1]=a[1];
                        LL now=a[1]>0?a[1]:0;
                        for(int i=2;i<=n;i++)
                        {
                            b[i]=b[i-1];
                            now+=a[i];
                            b[i]=now>b[i]?now:b[i];
                            now=now>0?now:0;
                        }
                        c[1]=b[1];
                        c[2]=c[1]+b[1];
                        for(int i=3;i<=n;i++)
                            c[i]=c[i-1]+(b[i-1]>0?b[i-1]:0);
                        printf("%d\n", (int)((c[n]>c[1]?c[n]:c[1])%p));
                        return 0;
                    }
                    
                    
                    • 0
                      @ 2024-9-26 15:01:51

                      C++ :

                      #include<cstdio>
                      #include<cstring>
                      #include<cstdlib>
                      typedef __int128 LL;
                      const int N=1100000;
                      int n, p;
                      LL a[N];
                      LL b[N],c[N];
                      const int SIZE=1<<25;
                      char Buf[SIZE],*buf=Buf;
                      #define getint(x) (x)=strtoll(buf,&buf,10)
                      int main()
                      {
                          fread(Buf,SIZE,1,stdin);
                          getint(n);getint(p);
                          for (int i=1;i<=n;i++)
                              getint(a[i]);
                          b[1]=a[1];
                          LL now=a[1]>0?a[1]:0;
                          for(int i=2;i<=n;i++)
                          {
                              b[i]=b[i-1];
                              now+=a[i];
                              b[i]=now>b[i]?now:b[i];
                              now=now>0?now:0;
                          }
                          c[1]=b[1];
                          c[2]=c[1]+b[1];
                          for(int i=3;i<=n;i++)
                              c[i]=c[i-1]+(b[i-1]>0?b[i-1]:0);
                          printf("%d\n", (int)((c[n]>c[1]?c[n]:c[1])%p));
                          return 0;
                      }
                      
                      • 1

                      信息

                      ID
                      580
                      时间
                      1000ms
                      内存
                      128MiB
                      难度
                      9
                      标签
                      递交数
                      10
                      已通过
                      7
                      上传者