結果

問題 No.723 2つの数の和
ユーザー Mcpu3Mcpu3
提出日時 2018-08-04 23:25:20
言語 C
(gcc 12.3.0)
結果
TLE  
実行時間 -
コード長 896 bytes
コンパイル時間 283 ms
コンパイル使用メモリ 30,252 KB
実行使用メモリ 8,696 KB
最終ジャッジ日時 2023-10-19 21:59:52
合計ジャッジ時間 4,329 ms
ジャッジサーバーID
(参考情報)
judge15 / judge13
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 1 ms
6,968 KB
testcase_01 AC 1 ms
4,348 KB
testcase_02 AC 1 ms
4,348 KB
testcase_03 AC 23 ms
4,348 KB
testcase_04 AC 32 ms
4,348 KB
testcase_05 AC 26 ms
4,348 KB
testcase_06 AC 30 ms
4,348 KB
testcase_07 AC 13 ms
4,348 KB
testcase_08 AC 14 ms
4,348 KB
testcase_09 AC 29 ms
4,348 KB
testcase_10 AC 14 ms
4,348 KB
testcase_11 AC 3 ms
4,348 KB
testcase_12 AC 16 ms
4,348 KB
testcase_13 AC 27 ms
4,348 KB
testcase_14 AC 7 ms
4,348 KB
testcase_15 AC 11 ms
4,348 KB
testcase_16 AC 17 ms
4,348 KB
testcase_17 AC 22 ms
4,348 KB
testcase_18 TLE -
testcase_19 -- -
testcase_20 -- -
testcase_21 -- -
testcase_22 -- -
testcase_23 -- -
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){
            j=m;
            while(j>=0&&x-a[i]==t[j]){
                s++;
                j++;
            }
            j=m-1;
            while(j>=0&&x-a[i]==t[j]){
                s++;
                j--;
            }
        }
    }
    printf("%d",s);
    return 0;
}
0