結果
問題 |
No.1279 Array Battle
|
ユーザー |
![]() |
提出日時 | 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; }