結果
問題 | No.9 モンスターのレベル上げ |
ユーザー | TLwiegehtt |
提出日時 | 2015-07-18 05:18:56 |
言語 | C90 (gcc 11.4.0) |
結果 |
AC
|
実行時間 | 1,941 ms / 5,000 ms |
コード長 | 1,515 bytes |
コンパイル時間 | 479 ms |
コンパイル使用メモリ | 26,212 KB |
実行使用メモリ | 4,384 KB |
最終ジャッジ日時 | 2023-09-06 03:55:23 |
合計ジャッジ時間 | 8,064 ms |
ジャッジサーバーID (参考情報) |
judge15 / judge13 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 1 ms
4,376 KB |
testcase_01 | AC | 1 ms
4,376 KB |
testcase_02 | AC | 916 ms
4,376 KB |
testcase_03 | AC | 330 ms
4,376 KB |
testcase_04 | AC | 270 ms
4,380 KB |
testcase_05 | AC | 167 ms
4,376 KB |
testcase_06 | AC | 35 ms
4,376 KB |
testcase_07 | AC | 1 ms
4,380 KB |
testcase_08 | AC | 44 ms
4,380 KB |
testcase_09 | AC | 726 ms
4,376 KB |
testcase_10 | AC | 1 ms
4,376 KB |
testcase_11 | AC | 1,941 ms
4,376 KB |
testcase_12 | AC | 18 ms
4,376 KB |
testcase_13 | AC | 6 ms
4,376 KB |
testcase_14 | AC | 755 ms
4,380 KB |
testcase_15 | AC | 814 ms
4,376 KB |
testcase_16 | AC | 4 ms
4,380 KB |
testcase_17 | AC | 452 ms
4,376 KB |
testcase_18 | AC | 350 ms
4,384 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; }