B - Weak Beats 解説 by en_translator
Receive the string \(S\) from the standard input, and just as instructed in the problem statement, check if the \(i\)-th character of \(S\) is 1 for all even number \(i\) between \(2\) and \(16\).  This can be implemented with a for statement and a if statement.  This time, the length of the string is fixed, and so is the indices of characters to be inspected: \(2,4,6,8,10,12,14,16\).  Thus, using only an if statement is also feasible.  Therefore, the problem has been solved.
Here are caveats on implementation.
When referring to a character in a string, beware that most language adopts zero-based indexing. That is, if a variable \(s\) stores a string, \(s[0]\) represents the first character, \(s[1]\) the second, …, and so on. In our problem, we have to inspect \(s[1],s[3],\ldots,\) and \(s[15]\), instead of \(s[2],s[4],\ldots\), and \(s[16]\); notice the difference in indices.
Also, be careful not to print No multiple times if there are multiple even number \(i\) such that the \(i\)-th character of \(S\) is 1.
It is good idea to terminate the program immediately once printing No, or manage a boolean type variable and print only once at last.
Sample code in C++:
#include <bits/stdc++.h>
using namespace std;
int main(void) {
	string s;
	cin>>s;
	for(int i=1;i<16;i+=2){
		if(s[i]!='0'){
			cout<<"No"<<endl;
			return 0;
		}
	}
	cout<<"Yes"<<endl;
	return 0;
}
Sample code in Python:
s=input()
flag=True
for i in range(1,16,2):
	if s[i]!='0':
		flag=False
if flag:
	print("Yes")
else:
	print("No")
				投稿日時:
				
				
				最終更新: