結果
| 問題 |
No.1650 Moving Coins
|
| コンテスト | |
| ユーザー |
pengin_2000
|
| 提出日時 | 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;
}
pengin_2000