アルゴ式(beta版)の「日本情報オリンピック (予選) 過去問」JOI 2014/2015 予選 (前半)からの出典です。
algo-method.com
アルゴ式とは...
>・プログラミングや情報科学をコツコツ学べる「教科書」
>・学んだ内容をゲーム感覚で大量に実践できる「練習問題」
>の2つで構成される、Web上で完結した学習コンテンツです。
・問題 1: 水道料金
/* C++による「日本情報オリンピック (予選) 過去問」JOI 2014/2015 予選 (前半)の解答例 問題 1: 水道料金 https://algo-method.com/tasks/570 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int a,b,c,d,p; cin>>a>>b>>c>>d>>p; int x=a*p; int y=b+((p>c) ? d*(p-c) : 0); cout<<min(x,y)<<endl; return 0; }
・問題 2: クリスマスパーティー
/* C++による「日本情報オリンピック (予選) 過去問」JOI 2014/2015 予選 (前半)の解答例 問題 2: クリスマスパーティー https://algo-method.com/tasks/571 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int n,m; cin>>n>>m; vector<int> target,score(n,0); for(int i=0;i<m;i++){ int t; cin>>t; target.push_back(t); } for(int i=0;i<m;i++){ int j=target[i]-1; score[j]+=n; for(int k=0;k<n;k++){ int l; cin>>l; l--; if(l!=j){ continue; } score[j]--; score[k]++; } } for(int i=0;i<n;i++){ cout<<score[i]<<endl; } return 0; }
・問題 3: 気象予報士
/* C++による「日本情報オリンピック (予選) 過去問」JOI 2014/2015 予選 (前半)の解答例 問題 3: 気象予報士 https://algo-method.com/tasks/575 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int h,w; cin>>h>>w; char c[h][w]; for(int i=0;i<h;i++){ for(int j=0;j<w;j++){ cin>>c[i][j]; } } for(int i=0;i<h;i++){ int num=-1; for(int j=0;j<w;j++){ if(c[i][j]=='c'){ num=j; } int out=-1; if(num!=-1){ out=j-num; } cout<<out<<((j==w-1) ? "\n" : " "); } } return 0; }
設問の出典は、情報科学をコツコツ積み立てて学習できるサービス「アルゴ式(beta版)」です。
algo-method.com