本文共 1030 字,大约阅读时间需要 3 分钟。
为了解决这个问题,我们需要判断Vasya接收到的信号是否符合等距的条件。具体来说,我们需要检查这些信号中的1是否在等距的间隔中出现。
#include#include #include using namespace std;int main() { int n; char s[n]; scanf("%d", &n); scanf("%s", s); vector ones_pos; for (int i = 0; i < n; ++i) { if (s[i] == '1') { ones_pos.push_back(i); } } if (ones_pos.size() < 2) { puts("YES"); return 0; } int pace = ones_pos[1] - ones_pos[0]; for (size_t i = 2; i < ones_pos.size(); ++i) { if (ones_pos[i] - ones_pos[i - 1] != pace) { puts("NO"); return 0; } } puts("YES"); return 0;}
scanf读取输入的整数n和字符串s。ones_pos向量中。pace,然后检查后续的1是否都按照这个间隔出现。如果不符合,立即输出"NO"并结束程序。这种方法确保了我们能够高效且准确地判断信号是否符合等距条件,从而解决问题。
转载地址:http://yjwi.baihongyu.com/