結果
| 問題 |
No.1768 The frog in the well knows the great ocean.
|
| コンテスト | |
| ユーザー |
tails
|
| 提出日時 | 2021-11-30 18:55:44 |
| 言語 | C (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 11 ms / 3,000 ms |
| コード長 | 1,160 bytes |
| コンパイル時間 | 183 ms |
| コンパイル使用メモリ | 31,488 KB |
| 実行使用メモリ | 8,036 KB |
| 最終ジャッジ日時 | 2024-07-03 14:29:18 |
| 合計ジャッジ時間 | 2,904 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 27 |
コンパイルメッセージ
main.c:18:1: warning: return type defaults to 'int' [-Wimplicit-int]
18 | main(){
| ^~~~
main.c: In function 'main':
main.c:74:9: warning: implicit declaration of function 'write' [-Wimplicit-function-declaration]
74 | write(1,wbuf,wp-wbuf);
| ^~~~~
main.c:75:9: warning: implicit declaration of function '_exit'; did you mean '_Exit'? [-Wimplicit-function-declaration]
75 | _exit(0);
| ^~~~~
| _Exit
ソースコード
#pragma GCC optimize("Ofast")
#pragma GCC target("avx2")
char*mmap();
#define rd_skip() while(*rp++>=48)
#define rd(v) long v=0;{long _c;while(_c=*rp++-48,_c>=0)v=v*10+_c;}
#define rep(v,e) for(long v=0;v<e;++v)
#define rrep(v,e) for(long v=e;v--;)
char wbuf[1<<25];
unsigned a[200000];
unsigned b[200000];
unsigned w[200000];
char f[200000];
main(){
char*rp=mmap(0l,1l<<25,1,2,0,0ll);
char*wp=wbuf;
rd_skip();
while(*rp){
rd(n);
rep(i,n){
rd(ai);
a[i]=ai;
}
rep(i,n){
rd(bi);
b[i]=bi;
}
{
long ws=0,wt=0;
rep(i,n){
while(ws<wt&&w[wt-1]<a[i]){
--wt;
}
if(ws==wt||w[wt-1]>a[i]){
w[wt++]=a[i];
}
while(ws<wt&&w[ws]>b[i]){
++ws;
}
f[i]=ws<wt&&w[ws]==b[i];
}
}
{
long ws=0,wt=0;
rrep(i,n){
while(ws<wt&&w[wt-1]<a[i]){
--wt;
}
if(ws==wt||w[wt-1]>a[i]){
w[wt++]=a[i];
}
while(ws<wt&&w[ws]>b[i]){
++ws;
}
if(!f[i]&&!(ws<wt&&w[ws]==b[i])){
goto damedatta;
}
}
}
if(1){
*(int*)wp=*(int*)"Yes\n";
wp+=4;
}else{
damedatta:
*(int*)wp=*(int*)"No\n";
wp+=3;
}
}
write(1,wbuf,wp-wbuf);
_exit(0);
}
tails