自分は、本番は模試があるので出られなかったのですが、解答が出たので少し解いてみました。
問題1
#include
int main(void) {
int L,A,B,C,D;
int need,need2;
scanf("%d%d%d%d%d",&L,&A,&B,&C,&D);
need=(A+C-1)/C;
need2=(B+D-1)/D;
if(need2>need)need=need2;
printf("%d\n",L-need);
return 0;
}
問題2
#include
int main(void) {
int input[200][3];
int N,i,j;
scanf("%d",&N);
for(i=0;i
#include
int main(void) {
int N;
char mise_name[100];
char old_board[200];
int i,j,k;
int count;
int board_num;
int board_length;
int mise_length;
int ok,nowok;
scanf("%d",&N);
scanf("%s",mise_name);
mise_length=strlen(mise_name);
count=0;
for(board_num=0;board_num=board_length)break;
nowok=1;
for(k=0;k
#include
int D,N;
int kion[200];
struct {
int A,B,C;
} fuku[200];
int memo[210][110];
int tansaku(int day,int maxday,int prev_hade) {
int result=0;
int nowresult;
int i;
if(day>=maxday)return 0;
if(memo[day][prev_hade]>0)return memo[day][prev_hade]-1;
for(i=0;iresult)result=nowresult;
}
}
memo[day][prev_hade]=result+1;
return result;
}
int main(void) {
int i;
int result=0;
int nowresult;
scanf("%d%d",&D,&N);
for(i=0;iresult)result=nowresult;
}
}
printf("%d\n",result);
return 0;
}
派手さのメモを要素数100しか取らないと死亡してしまうので注意が必要。
問題5
#include
#define CP_X 0
#define CP_Y 1
#define CP_D 2
int N,K;
struct {
int x1,y1,d1;
int x2,y2,d2;
} fishes[50];
int cp_num[3]={0,0,0};
int cp[3][110];
void add_cp(int id,int num) {
int i,pos;
for(i=0;inum)break;
}
pos=i;
for(i=cp_num[id];i>pos;i--)cp[id][i]=cp[id][i-1];
cp[id][pos]=num;
cp_num[id]++;
}
int get_cp(int id,int num) {
int left,right,mid;
left=0;right=cp_num[id]-1;
while(left=K) {
result+=
(long long)(cp[CP_X][i+1]-cp[CP_X][i])*
(long long)(cp[CP_Y][j+1]-cp[CP_Y][j])*
(long long)(cp[CP_D][k+1]-cp[CP_D][k]);
}
}
}
}
printf("%lld\n",result);
return 0;
}
問題6
考え中。
とりあえず愚直解を投げれば部分点は取れる?無理?無理そう?
おまけ
確認に使用したバッチファイル。
judge.bat
@echo off
if "%1"=="" goto :usage
call judge_helper %1 1
call judge_helper %1 2
call judge_helper %1 3
call judge_helper %1 4
call judge_helper %1 5
goto :EOF
:usage
echo Usage: judge [task no]