题解:P14693 [ICPC 2024 Tehran R] Divar' s Salaries

· · 题解

p14693。

这是一道挺简单难的题。

题目也是非常好理解,就是按照题目模拟就行了。

难点是处理逗号(也不是很难),只需要再写一个 for 就行了。

注意测试点 4 它是 0加班时间也算在正常工作时间里

时间复杂度 O(n \times \log M)

接下来就是代码了。

#include<bits/stdc++.h>
using namespace std;
int n,x,k,h;
int main()
{
    cin>>n;
    while(n--)
    {
        int sum=0,x;
        cin>>x>>k>>h;
        sum+=h*x*2;  //节假日工作时间
        if(k-h>140) sum+=(k-h-140)*1.5*x,sum+=140*x;  //加班时间和正常时间
        else sum+=(k-h)*x;  //正常时间
        string s=to_string(sum);  //将数字转换为字符串,且时间复杂度极低。
        x=s.size();
        for(int i=0;i<s.size();i++)
        {
            if((x-i)%3==0&&i!=0) cout<<",";  //处理逗号
            cout<<s[i];
        }
        cout<<endl;  //一定要换行!
    }
    return 0;
}

蒟蒻的题解求过qwq。