「AOJ再挑戦46~50」の編集履歴(バックアップ)一覧はこちら
「AOJ再挑戦46~50」(2014/01/29 (水) 22:19:44) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
*問46 Differential
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0046
標高データを読み込んで一番高い山と低い山の差をこたえる問題。
簡単な問題なので書くことがありません。
#include<stdio.h>
int main(){
double min,max,a;
scanf("%lf",&min);
max=min;
while(scanf("%lf",&a)!=EOF){
min=min>a?a:min;
max=max>a?max:a;
}
printf("%lf\n",max-min);
}
*問47 Cup Game
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0047
カップゲームの操作結果をこたえる問題。
簡単なので何も工夫するところがありません。
#include<stdio.h>
int main(){
char b='A',c1,c2;
while(scanf("%c,%c%*c",&c1,&c2)!=EOF){
b=(b==c1)?c2:b==c2?c1:b;
}
printf("%c\n",b);
}
*問48 Class
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0048
体重からボクシングの階級をこたえる問題。
簡単なので何も工夫するところがありません。
#include<stdio.h>
int main(){
char lank[11][20]={ "light fly","fly","bantam","feather",
"light","light welter","welter","light middle",
"middle","light heavy","heavy"};
double w;
while(scanf("%lf",&w)!=EOF){
int p=(w>48)+(w>51)+(w>54)+(w>57)+(w>60)+(w>64)+(w>69)+(w>75)+(w>81)+(w>91);
printf("%s\n",lank[p]);
}
}
*問49 Blood Groups
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0049
血液型を集計する問題。
ハッシュ関数通して集計するだけです。
#include<stdio.h>
int main(){
char type[3];
int n;
int count[4]={0};
while(scanf("%d,%s",&n,type)!=EOF){
count[((type[0]=='B'))+(3*(type[0]=='O'))+(2*(type[1]=='B'))]++;
}
for(int i=0;i<4;i++)printf("%d\n",count[i]);
}
*問46 Differential
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0046
標高データを読み込んで一番高い山と低い山の差をこたえる問題。
簡単な問題なので書くことがありません。
#include<stdio.h>
int main(){
double min,max,a;
scanf("%lf",&min);
max=min;
while(scanf("%lf",&a)!=EOF){
min=min>a?a:min;
max=max>a?max:a;
}
printf("%lf\n",max-min);
}
*問47 Cup Game
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0047
カップゲームの操作結果をこたえる問題。
簡単なので何も工夫するところがありません。
#include<stdio.h>
int main(){
char b='A',c1,c2;
while(scanf("%c,%c%*c",&c1,&c2)!=EOF){
b=(b==c1)?c2:b==c2?c1:b;
}
printf("%c\n",b);
}
*問48 Class
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0048
体重からボクシングの階級をこたえる問題。
簡単なので何も工夫するところがありません。
#include<stdio.h>
int main(){
char lank[11][20]={ "light fly","fly","bantam","feather",
"light","light welter","welter","light middle",
"middle","light heavy","heavy"};
double w;
while(scanf("%lf",&w)!=EOF){
int p=(w>48)+(w>51)+(w>54)+(w>57)+(w>60)+(w>64)+(w>69)+(w>75)+(w>81)+(w>91);
printf("%s\n",lank[p]);
}
}
*問49 Blood Groups
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0049
血液型を集計する問題。
ハッシュ関数通して集計するだけです。
#include<stdio.h>
int main(){
char type[3];
int n;
int count[4]={0};
while(scanf("%d,%s",&n,type)!=EOF){
count[((type[0]=='B'))+(3*(type[0]=='O'))+(2*(type[1]=='B'))]++;
}
for(int i=0;i<4;i++)printf("%d\n",count[i]);
}
*問50 Apple and Peach
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0050
置き換えする文字数が同じなら簡単で手抜きで解きます。
#include<stdio.h>
#include<string.h>
bool test_change(char *c1,char *c2,char *c3){
for(int i=0;i<5;i++){
if(c1[i]!=c2[i])return false;
}
memcpy(c1,c3,5);
return true;
}
int main(){
char text[1001];
char *ret;
int i=0;
while(scanf("%c",&text[i++])!=EOF);
text[i-1]='\0';
ret=text;
while(ret[0]!='\0'){
if(!test_change(ret,"apple","peach")){
test_change(ret,"peach","apple");
}
ret++;
}
printf("%s",text);
}