結果
問題 | No.871 かえるのうた |
ユーザー |
![]() |
提出日時 | 2020-11-02 19:05:32 |
言語 | C (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 5 ms / 2,000 ms |
コード長 | 798 bytes |
コンパイル時間 | 685 ms |
コンパイル使用メモリ | 30,976 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-11-30 11:04:39 |
合計ジャッジ時間 | 2,539 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 49 |
コンパイルメッセージ
main.c:10:1: warning: return type defaults to 'int' [-Wimplicit-int] 10 | main(){ | ^~~~ main.c: In function 'main': main.c:41:9: warning: implicit declaration of function 'printf' [-Wimplicit-function-declaration] 41 | printf("%d",bi-ai+1); | ^~~~~~ main.c:1:1: note: include '<stdio.h>' or provide a declaration of 'printf' +++ |+#include <stdio.h> 1 | #pragma GCC optimize("Ofast") main.c:41:9: warning: incompatible implicit declaration of built-in function 'printf' [-Wbuiltin-declaration-mismatch] 41 | printf("%d",bi-ai+1); | ^~~~~~ main.c:41:9: note: include '<stdio.h>' or provide a declaration of 'printf'
ソースコード
#pragma GCC optimize("Ofast")#pragma GCC target("avx2")char*mmap();#define RD(v) int v=0;{int c;while(c=*rp++-48,c>=0)v=v*10+c;}#define RDL(v) long v=0;{int c;while(c=*rp++-48,c>=0)v=v*10+c;}long x[100002],a[100002];main(){char*rp=mmap(0l,20l*200002,1,2,0,0ll);RD(n); RD(k);for(int i=0;++i<=n;){int neg=*rp==45?++rp,1:0;RDL(t);x[i]=neg?-t:t;}x[0]=1l<<63;x[n+1]=x[0]-1;for(int i=0;++i<=n;){RDL(t);a[i]=t;}int ai=k,bi=k;long ax=x[k]-a[k],bx=x[k]+a[k];long prev_ax;do{prev_ax=ax;while(x[ai-1]>=ax){--ai;if(ax>x[ai]-a[ai]) ax=x[ai]-a[ai];if(bx<x[ai]+a[ai]) bx=x[ai]+a[ai];}while(x[bi+1]<=bx){++bi;if(ax>x[bi]-a[bi]) ax=x[bi]-a[bi];if(bx<x[bi]+a[bi]) bx=x[bi]+a[bi];}}while(prev_ax!=ax);printf("%d",bi-ai+1);}