結果
問題 |
No.9009 改行区切りで与えられる数値データの合計値を求める(テスト用)
|
ユーザー |
|
提出日時 | 2016-09-30 06:12:59 |
言語 | C90 (gcc 12.3.0) |
結果 |
AC
|
実行時間 | 5 ms / 3,000 ms |
コード長 | 1,056 bytes |
コンパイル時間 | 178 ms |
コンパイル使用メモリ | 20,992 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-12-25 15:45:43 |
合計ジャッジ時間 | 1,053 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 15 |
コンパイルメッセージ
main.c: In function ‘main’: main.c:12:5: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 12 | fread(buf, sizeof(char), 2000000, stdin); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ソースコード
#include <stdio.h> char buf[2000000]; int main(void) { char *p = buf; int n = 0, i; long long sum = 0LL; unsigned int f1 = 0, f2 = 1, fb = 0; fread(buf, sizeof(char), 2000000, stdin); if (*p < '1' || '9' < *p) { perror("invalid n"); return 1; } while ('0' <= *p && *p <= '9') { n = 10 * n + (int)(*p - '0'); p++; } if (*p != '\n') { perror("invalid first newline"); return 1; } p++; for (i = 0; i < n; i++) { long long a = 0LL; if (*p < '0' || '9' < *p) { fprintf(stderr, "invalid digit No.%d", i); return 1; } while ('0' <= *p && *p <= '9') { a = 10LL * a + (long long)(*p - '0'); p++; } sum += a; if (*p != '\n') { perror("invalid newline"); return 1; } *p++; } if (*p != '\0') { perror("invalid input"); return 1; } printf("%lld\n", sum); return 0; }