题解:P14505 [NCPC 2025] km/h

· · 题解

题意分析

有限速的就很好做,直接输出限速就行了,但是恢复国家限速的该怎么处理呢,它需要满足以下条件。

  1. 它需要比前面出现过的所有数大。
  2. 它是个整十数。

所以我们只需要每次在输入的数不为 / 时,用变量记录当前最大值,当输入 / 时就可以直接输出 maxn \div 10 \times 10 + 10 就行了。

还有就是这道题的输入应该用 string 处理,注意千万不要用 int 输入 /

代码

#include<bits/stdc++.h>
using namespace std;
#define akioi ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define ll long long
#define db double
#define ull unsigned long long
#define endl '\n'

int main()
{
    akioi
    int n;
    cin>>n;
    int maxn = 0;
    while(n--)
    {
        string s;
        cin>>s;
        if(s != "/")
        {
            cout<<s<<endl;
            int x = 0;
            for(int i=0;i<=s.size()-1;i++)
            {
                x *= 10;
                x += s[i] - '0';
            }
            maxn = max(maxn , x);
            continue;
        }
        cout<<maxn / 10 * 10 + 10<<endl;
    }
    return 0;
}//求关注QWQ