結果
問題 | No.1650 Moving Coins |
ユーザー |
![]() |
提出日時 | 2021-08-20 21:51:48 |
言語 | C (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 68 ms / 2,000 ms |
コード長 | 1,075 bytes |
コンパイル時間 | 249 ms |
コンパイル使用メモリ | 30,592 KB |
実行使用メモリ | 5,760 KB |
最終ジャッジ日時 | 2024-10-14 03:22:49 |
合計ジャッジ時間 | 4,920 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 24 |
コンパイルメッセージ
main.c:2:15: warning: conflicting types for built-in function 'abs'; expected 'int(int)' [-Wbuiltin-declaration-mismatch] 2 | long long int abs(long long int n) | ^~~ main.c:2:1: note: 'abs' is declared in header '<stdlib.h>' 1 | #include<stdio.h> +++ |+#include <stdlib.h> 2 | long long int abs(long long int n)
ソースコード
#include<stdio.h>long long int abs(long long int n){if (n < 0)n *= -1;return n;}int main(){int n;scanf("%d", &n);int i;long long int a[200005], b[200005];for (i = 0; i < n; i++)scanf("%lld", &a[i]);for (i = 0; i < n; i++)scanf("%lld", &b[i]);long long int cnt = 0;for (i = 0; i < n; i++)cnt += abs(a[i] - b[i]);printf("%lld\n", cnt);int c[200005], cc = 0;for (i = 0; i < n; i++){if (a[i] < b[i]){if (i == n - 1){c[cc] = i;cc++;}else if (b[i] < a[i + 1]){c[cc] = i;cc++;}}else{if (i == 0){c[cc] = i;cc++;}else if (a[i - 1] < b[i]){c[cc] = i;cc++;}}}while (cc > 0){cc--;i = c[cc];while (a[i] < b[i]){printf("%d R\n", i + 1);a[i]++;}while (a[i] > b[i]){printf("%d L\n", i + 1);a[i]--;}if (i > 0){if (a[i - 1] < b[i - 1]){c[cc] = i - 1;cc++;}}if (i < n - 1){if (b[i + 1] < a[i + 1]){c[cc] = i + 1;cc++;}}}return 0;}