結果
問題 | No.126 2基のエレベータ |
ユーザー |
![]() |
提出日時 | 2016-05-09 02:37:28 |
言語 | C90 (gcc 12.3.0) |
結果 |
AC
|
実行時間 | 1 ms / 5,000 ms |
コード長 | 569 bytes |
コンパイル時間 | 156 ms |
コンパイル使用メモリ | 21,248 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-10-10 18:29:29 |
合計ジャッジ時間 | 936 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 27 |
コンパイルメッセージ
main.c:21:1: warning: return type defaults to ‘int’ [-Wimplicit-int] 21 | main(){ | ^~~~ main.c: In function ‘main’: main.c:23:5: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 23 | scanf("%td%td%td\n", &A,&B,&S); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ソースコード
#include <stdio.h> #include <stdlib.h> #include <stddef.h> #define int ptrdiff_t #define div lldiv #define div_t lldiv_t #define abs(a) ((a)<0?-(a):(a)) #define min(a,b) ((a)<(b)?(a):(b)) int A,B,S; int calc(void) { if (S == 1 || abs(A-S) <= abs(B-S)) return abs(A-S) + abs(S-0); if (A == 0) return abs(B-S) + abs(S-1) + abs(A-1) + abs(1-0); return min(abs(B-S) + abs(S-1) + abs(A-1) + abs(1-0), abs(B-S) + abs(S-A) + abs(A-0)); } main(){ int ans = 0; scanf("%td%td%td\n", &A,&B,&S); printf("%td\n", calc()); return 0; }