Skip to main content
180 words1 min

题解:P9022 [CCC 2021 J3] Secret Instructions

题意简述

多组数据,每行 55 个数字字符,读到 99999 结束。每行按前两位之和决定方向:和为奇数输出 left,为非零偶数输出 right,为零时沿用上一行的方向。随后输出一个空格与后三位数字。

解题思路

按字符串读入每行,避免前导零被吞掉。取前两个字符之和判方向:奇数置 left,非零偶数置 right,和为零时不改方向(保留上一行)。再输出方向、空格与后三位(题目保证后三位的首字符非 00,整段原样输出即可)。

每行 O(1)O(1),总复杂度线性。

参考代码

296 Bcpp
#include <bits/stdc++.h>
using namespace std;

int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
string s;
bool r=0;
while(cin>>s&&s!="99999")
{
int sum=(s[0]-'0')+(s[1]-'0');
if(sum%2)r=0;
else if(sum)r=1;
cout<<(r?"right":"left")<<' '<<s.substr(2)<<'\n';
}
return 0;
}