結果
問題 | No.2018 X-Y-X |
ユーザー |
![]() |
提出日時 | 2022-07-23 02:30:53 |
言語 | C90 (gcc 12.3.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 678 bytes |
コンパイル時間 | 530 ms |
コンパイル使用メモリ | 23,040 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-07-04 11:42:33 |
合計ジャッジ時間 | 1,881 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 31 |
コンパイルメッセージ
main.c: In function ‘dame’: main.c:10:9: warning: implicit declaration of function ‘write’ [-Wimplicit-function-declaration] 10 | write(1,"-1",2); | ^~~~~ main.c:11:9: warning: implicit declaration of function ‘_exit’ [-Wimplicit-function-declaration] 11 | _exit(0); | ^~~~~ main.c:11:9: warning: incompatible implicit declaration of built-in function ‘_exit’ [-Wbuiltin-declaration-mismatch] main.c: In function ‘f1’: main.c:26:20: warning: implicit declaration of function ‘abs’ [-Wimplicit-function-declaration] 26 | z+=abs(a); | ^~~ main.c:1:1: note: include ‘<stdlib.h>’ or provide a declaration of ‘abs’ +++ |+#include <stdlib.h> 1 | #pragma GCC optimize("Ofast") main.c:26:24: warning: ‘abs’ argument 1 type is ‘long int’ where ‘int’ is expected in a call to built-in function declared without prototype [-Wbuiltin-declaration-mismatch] 26 | z+=abs(a); | ^ <built-in>: note: built-in ‘abs’ declared here main.c: In function ‘main’: main.c:43:9: warning: incompatible implicit declaration of built-in function ‘_exit’ [-Wbuiltin-declaration-mismatch] 43 | _exit(0); | ^~~~~
ソースコード
#pragma GCC optimize("Ofast")#define rd() ({long _v=0,_c;while(_c=*rp++-48,_c>=0)_v=_v*10+_c;_v;})#define wt(v) {ulong _z=v;do*--wp=_z%10+48;while(_z/=10);}#define rep(v,e) for(long v=0;v<e;++v)typedef unsigned long ulong;void dame(){write(1,"-1",2);_exit(0);}ulong f1(){char*mmap();char*rp=mmap(0l,1l<<25,1,2,0,0ll);long n=rd();char*s=rp;char*t=rp+(n+1);if(*s!=*t){dame();}long a=0,z=0;rep(i,n){a+=(t[i]!=t[i+1])-(s[i]!=s[i+1]);z+=abs(a);char*u=s; s=t; t=u;}if(a){dame();}return z;}void f2(ulong z){char wbuf[64],*wp=wbuf+sizeof wbuf;wt(z);write(1,wp,wbuf+sizeof wbuf-wp);}int main(){f2(f1());_exit(0);}