アルゴ式(beta版)の「日本情報オリンピック (予選) 過去問」JOI 2020/2021 一次予選 (第 3 回)からの出典です。
algo-method.com
アルゴ式とは...
>・プログラミングや情報科学をコツコツ学べる「教科書」
>・学んだ内容をゲーム感覚で大量に実践できる「練習問題」
>の2つで構成される、Web上で完結した学習コンテンツです。
・問題 1: 計算
/* C++による「日本情報オリンピック (予選) 過去問」JOI 2020/2021 一次予選 (第 3 回)の解答例 問題 1: 計算 https://algo-method.com/tasks/377 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int a,b; cin>>a>>b; cout<<max(a+b,a-b)<<endl; cout<<min(a+b,a-b)<<endl; return 0; }
・問題 2: IOI 文字列
/* C++による「日本情報オリンピック (予選) 過去問」JOI 2020/2021 一次予選 (第 3 回)の解答例 問題 2: IOI 文字列 https://algo-method.com/tasks/378 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int n; cin>>n; string s; cin>>s; string t="I"; for(int i=1;i<n;i++){ if(t[i-1]=='I'){ t+="O"; }else{ t+="I"; } } int cnt=0; for(int i=0;i<n;i++){ if(s[i]!=t[i]){ cnt++; } } cout<<cnt<<endl; return 0; }
・問題 3: 比較
/* C++による「日本情報オリンピック (予選) 過去問」JOI 2020/2021 一次予選 (第 3 回)の解答例 問題 3: 比較 https://algo-method.com/tasks/379 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int n,m; cin>>n>>m; vector<int> a(n),b(m); for(int i=0;i<n;i++){ cin>>a[i]; } for(int i=0;i<m;i++){ cin>>b[i]; } int cnt=0; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ if(a[i]<=b[j]){ cnt++; } } } cout<<cnt<<endl; return 0; }
設問の出典は、情報科学をコツコツ積み立てて学習できるサービス「アルゴ式(beta版)」です。
algo-method.com
またAtCoder Problemsにも同じ問題が公開されています。