競技プログラムになれるための例題問題集らしい。
中学生くらいから対象?
会津大学オンラインジャッジIntroduction to Programming I 解答例。
Getting Started - X Cubic
#include<stdio.h>
int main(){
int x;
scanf("%d",&x);
printf("%d\n",x*x*x);
return 0;
}
Getting Started - Rectangle
#include<stdio.h>
int main(){
int a,b;
scanf("%d %d",&a,&b);
printf("%d %d\n",a*b,2*a+2*b);
}
Branch on Condition - Small, Large, or Equal
#include<stdio.h>
int main(){
int a,b;
scanf("%d %d",&a,&b);
printf("a %s b\n",a<b?"<":a>b?">":"==");
}
Branch on Condition - Range
#include<stdio.h>
int main(){
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
printf("%s\n",a<b && b<c ? "Yes":"No");
}
Branch on Condition - Sorting Three Numbers
#include<stdio.h>
int main(){
int a,b,c,t;
scanf("%d %d %d",&a,&b,&c);
if(a>b)t=a,a=b,b=t;
if(b>c)t=b,b=c,c=t;
if(a>b)t=a,a=b,b=t;
printf("%d %d %d\n",a,b,c);
}
Repetitive Processing - Print Many Hello World
#include<stdio.h>
int main(){
for(int i=0;i<1000;i++){
printf("Hello World\n");
}
}
Repetitive Processing - Print Test Cases
#include<stdio.h>
int main(){
int i=1,n;
while(scanf("%d",&n)!=EOF){
if(n==0)break;
printf("Case %d: %d\n",i++,n);
}
}
Repetitive Processing - Swapping Two Numbers
#include<stdio.h>
int main(){
int a,b,t;
while(scanf("%d %d",&a,&b)!=EOF){
if(a==0&&b==0)break;
if(a>b)t=a,a=b,b=t;
printf("%d %d\n",a,b);
}
}
Computation - A / B Problem
#include<stdio.h>
int main(){
int a,b;
scanf("%d %d",&a,&b);
printf("%d %d %lf\n",a/b,a%b,(double)a/b);
}
Computation - Circle
#include<stdio.h>
#include<math.h>
int main(){
double r;
scanf("%lf",&r);
printf("%lf %lf\n",r*r*M_PI,2*r*M_PI);
}
Computation - Simple Calculator
#include<stdio.h>
int main(){
int a,b,c;
char op;
while(scanf("%d %c %d",&a,&op,&b)!=EOF){
if(op=='?')break;
if(op=='+')c=a+b;
if(op=='-')c=a-b;
if(op=='*')c=a*b;
if(op=='/')c=a/b;
printf("%d\n",c);
}
}
Nested Controls I - Print a Rectangle
#include<stdio.h>
int main(){
int a,b;
while(scanf("%d %d",&a,&b)!=EOF){
if(a==0&&b==0)break;
for(int i=0;i<a;i++){
for(int j=0;j<b;j++){
printf("#");
}
printf("\n");
}
printf("\n");
}
}
Nested Controls I - Print a Rectangle
#include<stdio.h>
int main(){
int a,b;
while(scanf("%d %d",&a,&b)!=EOF){
if(a==0&&b==0)break;
for(int i=1;i<=a;i++){
for(int j=1;j<=b;j++){
printf("%s",i==1 || i==a || j==1 || j==b?"#":".");
}
printf("\n");
}
printf("\n");
}
}
Nested Controls I - Print a Chessboard
#include<stdio.h>
int main(){
int a,b;
while(scanf("%d %d",&a,&b)!=EOF){
if(a==0&&b==0)break;
for(int i=0;i<a;i++){
for(int j=0;j<b;j++){
printf("%s",(i+j)%2?".":"#");
}
printf("\n");
}
printf("\n");
}
}
Nested Controls I - Print a Rectangle
#include<stdio.h>
int main(){
int n,a[101],i;
scanf("%d",&n);
for(i=0;i<n;i++)scanf("%d",&a[i]);
for(i--;i>0;i--)printf("%d ",a[i]);
printf("%d\n",a[0]);
}
Array - Finding Missing Cards
#include<stdio.h>
#include<string.h>
int main(){
int cards[4][14],n,t,num;
char c,ws[5]="SHCD";
memset(cards,0,sizeof(cards));
scanf("%d",&n);
while(n--){
scanf("%*c%c",&c);
scanf("%d",&num);
if(c=='S')t=0;
if(c=='H')t=1;
if(c=='C')t=2;
if(c=='D')t=3;
cards[t][num]=1;
}
for(int i=0;i<4;i++){
for(int j=1;j<=13;j++)if(cards[i][j]==0)printf("%c %d\n",ws[i],j);
}
}
Array - Official House
#include<stdio.h>
#include<string.h>
int main(){
int count[4][3][10],n,b,f,r,v;
memset(count,0,sizeof(count));
scanf("%d",&n);
while(n--){
scanf("%d %d %d %d",&b,&f,&r,&v);
count[b-1][f-1][r-1]+=v;
}
for(int i=0;i<4;i++){
for(int j=0;j<3;j++){
for(int k=0;k<9;k++)printf(" %d",count[i][j][k]);
printf(" %d\n",count[i][j][9]);
}
if(i!=3)printf("####################\n");
}
}
Nested Controls II - Grading
#include<stdio.h>
int main(){
int m,f,r,s,c;
while(scanf("%d%d%d",&m,&f,&r)){
if((m&f&r)==-1)break;
s=m+f;
c=4-(29<s)-(49<s)-(64<s)-(79<s);
c-=(c==3&&49<r);
if((m|f)==-1||s<30)c=5;
printf("%c\n",c+'A');
}
}
Nested Controls II - How many ways?
#include<stdio.h>
int main(){
int n,s;
while(scanf("%d %d",&n,&s)!=EOF){
if(n==0&&s==0)break;
int ans=0;
for(int a=1;a<n && 3*a<=s;a++){
for(int b=a+1; b<n && a+2*b<=s;b++){
int c=s-a-b;
if(c<=b)break;
if(n<c)continue;
ans++;
}
}
printf("%d\n",ans);
}
}
Nested Controls II - Spreadsheet
#include<stdio.h>
#include<vector>
int main(){
int r,c,n;
std::vector<int> colSum;
scanf("%d %d",&r,&c);
for(int i=0;i<c;i++)colSum.push_back(0);
while(r--){
int rowSum=0;
for(int j=0;j<c;j++){
scanf("%d",&n);
printf("%d ",n);
rowSum+=n;
colSum[j]+=n;
}
printf("%d\n",rowSum);
}
int rowSum=0;
for(int j=0;j<c;j++){
printf("%d ",colSum[j]);
rowSum+=colSum[j];
}
printf("%d\n",rowSum);
}
Character - Toggling Cases
#include<stdio.h>
#include<ctype.h>
int main(){
char c;
while(scanf("%c",&c)!=EOF){
if(islower(c)){
c=toupper(c);
}else if(isupper(c)){
c=tolower(c);
}
printf("%c",c);
}
}
Character - Sum of Numbers
#include<stdio.h>
#include<string.h>
int main(){
char nums[1001];
while(scanf("%s",nums)!=EOF){
if(nums[0]=='0'&&nums[1]=='\0')break;
int ans=0;
for(int i=0;nums[i]!='\0';i++)ans+=(nums[i]-'0');
printf("%d\n",ans);
}
}
Character - Counting Characters
#include<stdio.h>
#include<ctype.h>
int main(){
int count[27]={0};
char c;
while(scanf("%c",&c)!=EOF){
c=tolower(c);
if(islower(c))count[c-'a']++;
}
for(char i=0;i<26;i++)printf("%c : %d\n",i+'a',count[(int)i]);
}
String - Finding a Word
#include<iostream>
#include<string>
#include<ctype.h>
int main(){
int ans=0;
std::string str,word;
std::cin>>word;
for(int i=0;i<word.size();i++)word[i]=tolower(word[i]);
while(1){
std::cin>>str;
if(str=="END_OF_TEXT")break;
for(int i=0;i<str.size();i++)str[i]=tolower(str[i]);
if(word==str)ans++;
}
std::cout<<ans<<"\n";
}
String - Shuffle
#include<iostream>
#include<string>
int main(){
std::string str,strL,strR;
int n,s;
while(1){
std::cin>>str;
if(str=="-")break;
std::cin>>n;
while(n--){
std::cin>>s;
strL=str.substr(0,s);
strR=str.substr(s);
str=strR+strL;
}
std::cout<<str<<"\n";
}
}
String - Card Game
#include<iostream>
#include<string>
int main(){
std::string strT,strH;
int scoreT=0,scoreH=0,n;
std::cin>>n;
while(n--){
std::cin>>strT>>strH;
int v=strT.compare(strH);
if(v==0){
scoreT+=1;
scoreH+=1;
}else if(v<0){
scoreH+=3;
}else{
scoreT+=3;
}
}
std::cout<<scoreT<<" "<<scoreH<<"\n";
}
Math - Distance
#include<stdio.h>
#include<math.h>
int main(){
double x1,y1,x2,y2,dx,dy;
scanf("%lf %lf %lf %lf",&x1,&y1,&x2,&y2);
printf("%lf\n",hypot(x2-x1,y2-y1));
}
Math - Triangle
#include<stdio.h>
#include<math.h>
int main(){
double a,b,C,S,L,h;
scanf("%lf %lf %lf",&a,&b,&C);
C=C/180.0*M_PI;
h=b*sin(C);
S=0.5*a*h;
L=a+b+sqrt(a*a+b*b-2*a*b*cos(C));
printf("%lf\n%lf\n%lf\n",S,L,h);
}
Math - Standard Deviation
#include<stdio.h>
#include<math.h>
int main(){
while(1){
double xs[1001],m=0,v=0;
int n;
scanf("%d",&n);
if(n==0)break;
for(int i=0;i<n;i++){
scanf("%lf",&xs[i]);
m+=xs[i];
}
m/=n;
for(int i=0;i<n;i++){
v+=(xs[i]-m)*(xs[i]-m);
}
printf("%lf\n",sqrt(v/n));
}
}
最終更新:2014年01月13日 13:41