結果

問題 No.1304 あなたは基本が何か知っていますか?私は知っています.
ユーザー a
提出日時 2020-12-02 21:00:57
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
(最新)
AC  
(最初)
実行時間 -
コード長 432 bytes
コンパイル時間 237 ms
コンパイル使用メモリ 37,300 KB
実行使用メモリ 7,848 KB
最終ジャッジ日時 2025-06-22 02:59:45
合計ジャッジ時間 6,542 ms
ジャッジサーバーID
(参考情報)
judge5 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample WA * 1
other WA * 46 RE * 28
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.cpp: In function ‘int main()’:
main.cpp:9:17: warning: format ‘%d’ expects argument of type ‘int*’, but argument 2 has type ‘long int*’ [-Wformat=]
    9 |     for(scanf("%d%d%d%d",&n,&m,&x,&y);~scanf("%d",&a);)
      |                ~^        ~~
      |                 |        |
      |                 int*     long int*
      |                %ld
main.cpp:17:14: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long int’ [-Wformat=]
   17 |     printf("%d",r%998244353);
      |             ~^  ~~~~~~~~~~~
      |              |   |
      |              int long int
      |             %ld
main.cpp:9:14: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
    9 |     for(scanf("%d%d%d%d",&n,&m,&x,&y);~scanf("%d",&a);)
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
main.cpp:11:10: warning: ‘i’ is used uninitialized [-Wuninitialized]
   11 |     for(;i<n*N;i+=N)
      |          ^
main.cpp:8:19: note: ‘i’ was declared here
    8 |     int k,m,x,y,a,i;
      |                   ^
main.cpp:13:38: warning: ‘k’ may be used uninitialized [-Wmaybe-uninitialized]
   13 |             for(d[i+N*2+a]-=d[i+a]*(k-!!i),m=N;m--;)
      |                                    ~~^~~~~
main.cpp:8:9: note: ‘k’ was declared here
    8 |     int k,m,x,y,a,i;
      |         ^
main.cpp:16:10: warning: ‘r’ may be used uninitialized [-Wmaybe-uninitialized]
   16 |         r+=(x<=y)*d[i+x++];
      |         ~^~~~~~~~~~~~~~~~~
main.cpp:7:38: note: ‘r’ was declared here
    7 |     long N=1024,d[1<<16]={1},A[1024],r, n;
      |                                      ^

ソースコード

diff #

#include <stdio.h>
#include <stdlib.h>
#include <math.h>


int main(void){
    long N=1024,d[1<<16]={1},A[1024],r, n;
    int k,m,x,y,a,i;
    for(scanf("%d%d%d%d",&n,&m,&x,&y);~scanf("%d",&a);)
        k+=A[a]?0:++A[a];
    for(;i<n*N;i+=N)
        for(a=N;a--;)
            for(d[i+N*2+a]-=d[i+a]*(k-!!i),m=N;m--;)
                d[i+N+a^m]+=A[m]*d[i+a];
    for(;x<N;)
        r+=(x<=y)*d[i+x++];
    printf("%d",r%998244353);
}
0