結果

問題 No.723 2つの数の和
ユーザー Mcpu3Mcpu3
提出日時 2018-08-04 23:32:08
言語 C
(gcc 12.3.0)
結果
WA  
実行時間 -
コード長 798 bytes
コンパイル時間 199 ms
コンパイル使用メモリ 30,208 KB
実行使用メモリ 13,752 KB
最終ジャッジ日時 2024-09-19 17:58:44
合計ジャッジ時間 7,931 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 1 ms
13,752 KB
testcase_01 AC 1 ms
6,940 KB
testcase_02 AC 1 ms
6,940 KB
testcase_03 AC 413 ms
6,940 KB
testcase_04 AC 1,114 ms
6,940 KB
testcase_05 AC 446 ms
6,944 KB
testcase_06 AC 892 ms
6,940 KB
testcase_07 AC 70 ms
6,944 KB
testcase_08 AC 123 ms
6,940 KB
testcase_09 AC 503 ms
6,940 KB
testcase_10 AC 131 ms
6,944 KB
testcase_11 AC 4 ms
6,940 KB
testcase_12 AC 126 ms
6,944 KB
testcase_13 AC 24 ms
6,940 KB
testcase_14 AC 6 ms
6,944 KB
testcase_15 AC 10 ms
6,940 KB
testcase_16 AC 15 ms
6,940 KB
testcase_17 AC 19 ms
6,940 KB
testcase_18 WA -
testcase_19 WA -
testcase_20 AC 1 ms
6,940 KB
testcase_21 AC 1 ms
6,940 KB
testcase_22 AC 1 ms
6,940 KB
testcase_23 TLE -
testcase_24 -- -
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.c: In function 'main':
main.c:17:27: warning: passing argument 4 of 'qsort' from incompatible pointer type [-Wincompatible-pointer-types]
   17 |     qsort(t,n,sizeof(int),q);
      |                           ^
      |                           |
      |                           int (*)(const int *, const int *)
In file included from main.c:2:
/usr/include/stdlib.h:839:34: note: expected '__compar_fn_t' {aka 'int (*)(const void *, const void *)'} but argument is of type 'int (*)(const int *, const int *)'
  839 |                    __compar_fn_t __compar) __nonnull ((1, 4));
      |                    ~~~~~~~~~~~~~~^~~~~~~~

ソースコード

diff #

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

int q(const int *a,const int *b)
{
    return *a-*b;
}

int main(void)
{
    int n,x,a[100001],t[100001],s=0,l,r,m,f,i,j;
    scanf("%d%d",&n,&x);
    for(i=0;i<n;i++){
        scanf("%d",&a[i]);
        t[i]=a[i];
    }
    qsort(t,n,sizeof(int),q);
    for(i=0;i<n;i++){
        l=0;
        r=n;
        f=0;
        while(l<=r){
            m=(l+r)/2;
            if(x-a[i]==t[m]){
                f=1;
                break;
            }
            else if(x-a[i]>t[m])l=m+1;
            else r=m-1;
        }
        if(f>0){
            for(j=0;x-a[i]!=t[j];j++);
            s-=j;
            for(j=n-1;x-a[i]!=t[j];j--);
            s+=j;
            s++;
        }
    }
    printf("%d",s);
    return 0;
}
0