結果
問題 | No.9 モンスターのレベル上げ |
ユーザー |
![]() |
提出日時 | 2015-07-18 05:12:05 |
言語 | C90 (gcc 8.5.0) |
結果 |
AC
|
実行時間 | 4,528 ms / 5,000 ms |
コード長 | 1,514 bytes |
コンパイル時間 | 108 ms |
使用メモリ | 1,976 KB |
最終ジャッジ日時 | 2023-02-12 00:03:55 |
合計ジャッジ時間 | 17,981 ms |
ジャッジサーバーID (参考情報) |
judge13 / judge14 |
テストケース
テストケース表示入力 | 結果 | 実行時間 使用メモリ |
---|---|---|
testcase_00 | AC | 1 ms
1,852 KB |
testcase_01 | AC | 1 ms
1,948 KB |
testcase_02 | AC | 1,757 ms
1,976 KB |
testcase_03 | AC | 708 ms
1,952 KB |
testcase_04 | AC | 516 ms
1,956 KB |
testcase_05 | AC | 300 ms
1,952 KB |
testcase_06 | AC | 61 ms
1,864 KB |
testcase_07 | AC | 1 ms
1,948 KB |
testcase_08 | AC | 88 ms
1,912 KB |
testcase_09 | AC | 1,419 ms
1,864 KB |
testcase_10 | AC | 0 ms
1,956 KB |
testcase_11 | AC | 4,528 ms
1,952 KB |
testcase_12 | AC | 17 ms
1,912 KB |
testcase_13 | AC | 2,585 ms
1,964 KB |
testcase_14 | AC | 1,496 ms
1,896 KB |
testcase_15 | AC | 1,526 ms
1,960 KB |
testcase_16 | AC | 5 ms
1,968 KB |
testcase_17 | AC | 823 ms
1,868 KB |
testcase_18 | AC | 634 ms
1,864 KB |
testcase_19 | AC | 4 ms
1,948 KB |
ソースコード
#include <string.h> #include <stdio.h> typedef struct{ int lv; int cnt; }PARTY; PARTY party[1550]; int main(void){ int i,j,k,n; int monster[1550]; int minCnt = 9999999; scanf("%d", &n); for(i=0;i<n;i++){ scanf("%d", &party[i].lv); party[i].cnt = 0; } for(i=0;i<n;i++){ scanf("%d", &monster[i]); } for(i=0;i<n;i++){ for(j=i+1;j<n;j++){ if(party[i].lv > party[j].lv){ int tmp = party[i].lv; party[i].lv = party[j].lv; party[j].lv = tmp; } } } for(i=0;i<n;i++){ int maxCnt = 0; PARTY tParty[1550]; for(j=0;j<n;j++){ tParty[j].lv = party[j].lv; tParty[j].cnt=party[j].cnt; } for(j=0;j<n;j++){ int mlv = monster[(i+j)%n]/2; tParty[0].lv += mlv; tParty[0].cnt += 1; if(maxCnt < tParty[0].cnt){ maxCnt = tParty[0].cnt; } if(minCnt < maxCnt){ break; } for(k=1;k<n;k++){ if(tParty[k-1].lv > tParty[k].lv){ int tmp = tParty[k-1].lv; tParty[k-1].lv = tParty[k].lv; tParty[k].lv = tmp; tmp = tParty[k-1].cnt; tParty[k-1].cnt = tParty[k].cnt; tParty[k].cnt = tmp; }else if(tParty[k-1].lv == tParty[k].lv && tParty[k-1].cnt > tParty[k].cnt){ int tmp = tParty[k-1].lv; tParty[k-1].lv = tParty[k].lv; tParty[k].lv = tmp; tmp = tParty[k-1].cnt; tParty[k-1].cnt = tParty[k].cnt; tParty[k].cnt = tmp; }else{ break; } } } if(maxCnt < minCnt){ minCnt = maxCnt; } } printf("%d\n", minCnt); return 0; }