結果
問題 | No.9 モンスターのレベル上げ |
ユーザー |
![]() |
提出日時 | 2015-07-18 05:12:05 |
言語 | C90 (gcc 12.3.0) |
結果 |
AC
|
実行時間 | 4,278 ms / 5,000 ms |
コード長 | 1,514 bytes |
コンパイル時間 | 136 ms |
コンパイル使用メモリ | 22,272 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-07-08 10:06:40 |
合計ジャッジ時間 | 16,533 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 20 |
コンパイルメッセージ
main.c: In function ‘main’: main.c:16:9: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 16 | scanf("%d", &n); | ^~~~~~~~~~~~~~~ main.c:19:17: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 19 | scanf("%d", &party[i].lv); | ^~~~~~~~~~~~~~~~~~~~~~~~~ main.c:23:17: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 23 | scanf("%d", &monster[i]); | ^~~~~~~~~~~~~~~~~~~~~~~~
ソースコード
#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; }