ページ 1 / 1
プログラミングコンテストの問題について
Posted: 2013年7月21日(日) 21:42
by lpluser
プログラミングコンテストの問題について
プログラミングコンテストに参加していくつか問題を解いたのですが,なかなか○にならないので質問します
(どちらの問題についても,テストデータの一部で✖になっています。テストデータはわからないので、どうも悩んでいます・・
[1]
http://arc010.contest.atcoder.jp/submissions/90133
[2]
http://kupc2013.contest.atcoder.jp/submissions/90175
よろしくお願いします。
訂正Re: プログラミングコンテストの問題について
Posted: 2013年7月21日(日) 21:49
by lpluser
Re: プログラミングコンテストの問題について
Posted: 2013年7月21日(日) 21:54
by みけCAT
ライオンの方は、「ライオンの数の合計が最大になるもの」という条件に引っかかっているようです。
で撃墜できるようです。
Re: プログラミングコンテストの問題について
Posted: 2013年7月21日(日) 22:24
by lpluser
問題の読み間違いでしたか・・以下のコードで[1]はたぶん正解できたと思います。提出しすぎたのか判定待ちでとまっているのですが。。
//京都大学プログラミングコンテスト2013 B-ライオン
//2013.7.21
//製作時間 約1.5h
#include "stdio.h"
int n,x,m,i,j,p;
int l[10];
int r[10];
int s[10];
int t[6],tt[6];
int b=0;
int max=0;
int main(){
scanf("%d %d %d",&n,&x,&m);
for(i=0; i<m; i++) scanf("%d %d %d",&l,&r,&s);
int flag=1;
for(t[0]=0;t[0]<x+1;t[0]++){
for(t[1]=0;t[1]<x+1;t[1]++){
for(t[2]=0;t[2]<x+1;t[2]++){
for(t[3]=0;t[3]<x+1;t[3]++){
for(t[4]=0;t[4]<x+1;t[4]++){
for(t[5]=0;t[5]<x+1;t[5]++){
for(p=n;p<6;p++) t[p]=x+1;
flag=1;
for(j=0;j<m;j++){
int a=0;
for(i=l[j]-1;i<r[j];i++) a+=t;
if(a != s[j]) {
flag=0;
}
}
if(flag==1){
b=0;
for(p=0;p<n;p++) {
b+=t[p];
}
if((b>max)&&(max!=0)){
max=b;
for(p=0;p<n;p++) {
tt[p]=t[p];
}
}
}
}}}}}}
if(flag==1){
for(i=0;i<n-1;i++){
printf("%d",tt);
printf(" ");
}
printf("%d\n",tt[n-1]);
}else{
printf("-1");
}
return 0;
}
Re: プログラミングコンテストの問題について
Posted: 2013年7月21日(日) 22:27
by みけCAT
提示されたコードで[1]は多分WAになると思います。コードタグを使用していただけたらありがたいです。
超大型連休の方ですが、例えば今の日付が2月なら、1月に相当する日に変換するには、
2月ではなく1月の日数を足さなければいけません。その後の月も同様に1個前の月の日数を足してください。
撃墜ケースは
です。
Re: プログラミングコンテストの問題について
Posted: 2013年7月21日(日) 22:31
by みけCAT
No.4のコードを「ライオン」に提出してもWAになると思います。
なぜ無駄なmax!=0の判定をしているのかがわかりません。
最後に解が出たかどうかをflag==1で判定しているのもおかしいです。
さっきと同じケースで撃墜できます。
Re: プログラミングコンテストの問題について
Posted: 2013年7月21日(日) 22:57
by lpluser
超大型連休について、中学受験レベルの暦計算勘違いしてたんですね・・・
http://arc010.contest.atcoder.jp/submissions/90195
訂正したらACになりました。
ライオンのほうは、もうすこし自分で考えてみます.
受験勉強しながらプログラミングの勉強するのはやはりダメですね。。