結果
| 問題 |
No.9009 改行区切りで与えられる数値データの合計値を求める(テスト用)
|
| ユーザー |
tails
|
| 提出日時 | 2023-07-14 11:41:00 |
| 言語 | C90 (gcc 12.3.0) |
| 結果 |
AC
|
| 実行時間 | 4 ms / 3,000 ms |
| コード長 | 725 bytes |
| コンパイル時間 | 769 ms |
| コンパイル使用メモリ | 23,040 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-09-15 20:45:38 |
| 合計ジャッジ時間 | 1,980 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 15 |
コンパイルメッセージ
main.c: In function ‘main’:
main.c:11:12: warning: implicit declaration of function ‘read’ [-Wimplicit-function-declaration]
11 | if(read(0,rbuf,RSIZE)<RSIZE){
| ^~~~
main.c:25:33: warning: implicit declaration of function ‘memcpy’ [-Wimplicit-function-declaration]
25 | memcpy(rbuf,rp,d);
| ^~~~~~
main.c:1:1: note: include ‘<string.h>’ or provide a declaration of ‘memcpy’
+++ |+#include <string.h>
1 | #pragma GCC optimize("Ofast")
main.c:25:33: warning: incompatible implicit declaration of built-in function ‘memcpy’ [-Wbuiltin-declaration-mismatch]
25 | memcpy(rbuf,rp,d);
| ^~~~~~
main.c:25:33: note: include ‘<string.h>’ or provide a declaration of ‘memcpy’
main.c:44:9: warning: implicit declaration of function ‘write’ [-Wimplicit-function-declaration]
44 | write(1,wp,wbuf+sizeof wbuf-wp);
| ^~~~~
main.c:45:9: warning: implicit declaration of function ‘_exit’ [-Wimplicit-function-declaration]
45 | _exit(0);
| ^~~~~
main.c:45:9: warning: incompatible implicit declaration of built-in function ‘_exit’ [-Wbuiltin-declaration-mismatch]
ソースコード
#pragma GCC optimize("Ofast")
#pragma GCC target("avx2")
typedef unsigned long ulong;
#define RSIZE (1<<19)
char rbuf[RSIZE+1];
int main(){
int rlast=0;
if(read(0,rbuf,RSIZE)<RSIZE){
rlast=1;
}
char*rp=rbuf;
while(*rp++>=48);
ulong res=0;
do{
if(rlast){
if(!*rp){
break;
}
}else{
long d=rbuf+RSIZE-rp;
if(d<24){
memcpy(rbuf,rp,d);
rp=rbuf;
int nr=read(0,rbuf+d,RSIZE-d);
if(nr==0){
break;
}
if(d+nr!=RSIZE){
rbuf[d+nr]=0;
rlast=1;
}
}
}
ulong a=0;
for(int c;c=*rp++-48,c>=0;)a=a*10+c;
res+=a;
}while(*rp);
char wbuf[64],*wp=wbuf+sizeof wbuf;
ulong _z=res;
do*--wp=_z%10+48;while(_z/=10);
write(1,wp,wbuf+sizeof wbuf-wp);
_exit(0);
}
tails