大変悪い成績でした!
まず、Aを読んで解き始めました。一応組めたと思ってテストをしたのが0:20です。
ここで、辞書式にというのを見逃していたことに気づき、これを実装して提出したのが35分でした。ですが、残念なことに、丸め誤差のため、システムテストで落ちてしまいました。
他の問題は、次の理由で諦めました。
1. 難しい。
2. 問題文が長い。英語が苦手なのでこれはかなりしんどい。
もちろん、久々に0点で、ランクは403/1500でした。問題はこちら。
誰ひとりとして全問正解がおらず、1100人近い人が一問も正解しないというのは、少々厳しすぎるラウンドだったのではないでしょうか。
A.(wrong)#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct {
char name[21];
int level;
} skills;
void ssort(skills skill[],int size);
int main(void){
short n,m;
char str[21];
double k;
skills skill[40];
int i,j,l,c=0,flg;
scanf("%hd %hd %lf",&n,&m,&k);
for(i=0;i<n;i++){
scanf("%s %d",skill[i].name,&skill[i].level);
skill[i].level*=k;
if(skill[i].level<100) skill[i].level=-1;
else c++;
}
l=n;
for(i=0;i<m;i++){
scanf("%s",str);
flg=0;
for(j=0;j<l;j++){
if(strcmp(str,skill[j].name)==0){
if(skill[j].level<0){
c++;
skill[j].level=0;
}
flg=1;
break;
}
}
if(flg==1) continue;
strcpy(skill[l].name,str);
skill[l++].level=0;
c++;
}
ssort(skill,l);
printf("%d\n",c);
for(i=0;i<l;i++){
if(skill[i].level<0) continue;
printf("%s %d\n",skill[i].name,skill[i].level);
}
return 0;
}
void ssort(skills skill[],int size){
int i,j,place;
skills tmp;
for(i=0;i<size;i++){
place=i;
for(j=i+1;j<size;j++) if(strcmp(skill[place].name,skill[j].name)>0) place=j;
tmp=skill[i];
skill[i]=skill[place];
skill[place]=tmp;
}
}
0 件のコメント:
コメントを投稿