結果
| 問題 |
No.871 かえるのうた
|
| コンテスト | |
| ユーザー |
tails
|
| 提出日時 | 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);
}
tails