結果
問題 | No.9 モンスターのレベル上げ |
ユーザー | TLwiegehtt |
提出日時 | 2015-07-18 05:12:05 |
言語 | C90 (gcc 11.4.0) |
結果 |
AC
|
実行時間 | 4,529 ms / 5,000 ms |
コード長 | 1,514 bytes |
コンパイル時間 | 211 ms |
コンパイル使用メモリ | 25,772 KB |
実行使用メモリ | 4,380 KB |
最終ジャッジ日時 | 2023-09-22 18:54:51 |
合計ジャッジ時間 | 18,020 ms |
ジャッジサーバーID (参考情報) |
judge14 / judge11 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 0 ms
4,376 KB |
testcase_01 | AC | 1 ms
4,380 KB |
testcase_02 | AC | 1,765 ms
4,380 KB |
testcase_03 | AC | 708 ms
4,380 KB |
testcase_04 | AC | 516 ms
4,380 KB |
testcase_05 | AC | 302 ms
4,380 KB |
testcase_06 | AC | 61 ms
4,376 KB |
testcase_07 | AC | 1 ms
4,376 KB |
testcase_08 | AC | 90 ms
4,376 KB |
testcase_09 | AC | 1,423 ms
4,376 KB |
testcase_10 | AC | 1 ms
4,376 KB |
testcase_11 | AC | 4,529 ms
4,376 KB |
testcase_12 | AC | 18 ms
4,376 KB |
testcase_13 | AC | 2,599 ms
4,380 KB |
testcase_14 | AC | 1,504 ms
4,376 KB |
testcase_15 | AC | 1,527 ms
4,380 KB |
testcase_16 | AC | 5 ms
4,376 KB |
testcase_17 | AC | 821 ms
4,376 KB |
testcase_18 | AC | 634 ms
4,376 KB |
testcase_19 | AC | 3 ms
4,376 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; }