結果
| 問題 |
No.1279 Array Battle
|
| コンテスト | |
| ユーザー |
pengin_2000
|
| 提出日時 | 2021-09-06 00:54:26 |
| 言語 | C (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 25 ms / 2,000 ms |
| コード長 | 970 bytes |
| コンパイル時間 | 192 ms |
| コンパイル使用メモリ | 31,104 KB |
| 実行使用メモリ | 6,820 KB |
| 最終ジャッジ日時 | 2024-12-22 19:04:13 |
| 合計ジャッジ時間 | 1,218 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 20 |
ソースコード
#include<stdio.h>
int n;
int a[16], b[16];
int max, f;
int ans;
void check(int c[])
{
int v, i;
if (f == 0)
{
v = 0;
for (i = 0; i < n; i++)
if (a[c[i]] > b[i])
v += a[c[i]] - b[i];
if (v > max)
max = v;
}
else
{
v = 0;
for (i = 0; i < n; i++)
if (a[c[i]] > b[i])
v += a[c[i]] - b[i];
if (v == max)
ans++;
}
return;
}
void make(int c[], int cc, int d[], int dd)
{
if (dd == 0)
{
check(c);
return;
}
int e[16], i, j;
for (i = 0; i < dd; i++)
{
for (j = 0; j < i; j++)
e[j] = d[j];
for (j = i + 1; j < dd; j++)
e[j - 1] = d[j];
c[cc] = d[i];
make(c, cc + 1, e, dd - 1);
}
return;
}
int main()
{
scanf("%d", &n);
int i;
for (i = 0; i < n; i++)
scanf("%d", &a[i]);
for (i = 0; i < n; i++)
scanf("%d", &b[i]);
int c[16], d[16];
for (i = 0; i < n; i++)
d[i] = i;
f = 0;
make(c, 0, d, n);
f = 1;
ans = 0;
for (i = 0; i < n; i++)
d[i] = i;
make(c, 0, d, n);
printf("%d\n", ans);
return 0;
}
pengin_2000