Submission #211085

# Submission time Handle Problem Language Result Execution time Memory
211085 2020-03-19T07:56:08 Z w4123 Foehn Phenomena (JOI17_foehn_phenomena) C++17
100 / 100
849 ms 13188 KB
// foehn phenomena.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
using namespace std;
long long ss[200005];
long long a[200005];
int main()
{
    long long totalpos = 0;
    long long totalneg = 0;
    int n, q, s, t;
    cin >> n >> q >> s >> t;
    cin >> a[0];
    for (int i = 1; i <= n; i++)
    {
         cin >> a[i];
         if (a[i] - a[i - 1] > 0)
         {
             totalpos += a[i] - a[i - 1];
         }
         else
         {
             totalneg += a[i - 1] - a[i];
         }
         ss[i] = a[i] - a[i - 1];
    }
    for (int i = 0; i != q; i++)
    {
        int l, r, x;
        cin >> l >> r >> x;
        long long templ = ss[l] + x;
        if (templ >= 0)
        {
            totalpos += templ;
            if (ss[l] >= 0)
            {
                totalpos -= ss[l];
            }
            else
            {
                totalneg += ss[l];
            }
        }
        else
        {
            totalneg -= templ;
            if (ss[l] >= 0)
            {
                totalpos -= ss[l];
            }
            else
            {
                totalneg += ss[l];
            }
        }
        ss[l] = templ;
        if (r + 1 > n)
        {
            cout << totalneg * (t - s) + (totalneg - totalpos) * s << endl;
            continue;
        }
        x = -x;
        templ = ss[r + 1] + x;
        if (templ >= 0)
        {
            if (ss[r + 1] >= 0)
            {
                totalpos += x;
            }
            else
            {
                totalneg += ss[r + 1];
                totalpos += templ;
            }
        }
        else
        {
            if (ss[r+1] >= 0)
            {
                totalpos -= ss[r + 1];
                totalneg -= templ;
            }
            else
            {
                totalneg -= x;
            }
        }
        ss[r + 1] = templ;
        cout << totalneg * (t-s) + (totalneg - totalpos) * s << endl;
        
    }
}

// 运行程序: Ctrl + F5 或调试 >“开始执行(不调试)”菜单
// 调试程序: F5 或调试 >“开始调试”菜单

// 入门使用技巧: 
//   1. 使用解决方案资源管理器窗口添加/管理文件
//   2. 使用团队资源管理器窗口连接到源代码管理
//   3. 使用输出窗口查看生成输出和其他消息
//   4. 使用错误列表窗口查看错误
//   5. 转到“项目”>“添加新项”以创建新的代码文件,或转到“项目”>“添加现有项”以将现有代码文件添加到项目
//   6. 将来,若要再次打开此项目,请转到“文件”>“打开”>“项目”并选择 .sln 文件
# Verdict Execution time Memory Grader output
1 Correct 12 ms 384 KB Output is correct
2 Correct 14 ms 256 KB Output is correct
3 Correct 12 ms 512 KB Output is correct
4 Correct 12 ms 384 KB Output is correct
5 Correct 12 ms 512 KB Output is correct
6 Correct 12 ms 512 KB Output is correct
7 Correct 13 ms 512 KB Output is correct
8 Correct 12 ms 512 KB Output is correct
9 Correct 12 ms 384 KB Output is correct
10 Correct 12 ms 384 KB Output is correct
11 Correct 12 ms 384 KB Output is correct
12 Correct 12 ms 512 KB Output is correct
13 Correct 12 ms 384 KB Output is correct
14 Correct 12 ms 512 KB Output is correct
15 Correct 12 ms 384 KB Output is correct
16 Correct 12 ms 384 KB Output is correct
17 Correct 13 ms 384 KB Output is correct
18 Correct 13 ms 384 KB Output is correct
19 Correct 5 ms 384 KB Output is correct
20 Correct 5 ms 384 KB Output is correct
21 Correct 5 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 816 ms 5104 KB Output is correct
2 Correct 823 ms 6264 KB Output is correct
3 Correct 820 ms 6776 KB Output is correct
4 Correct 824 ms 5940 KB Output is correct
5 Correct 849 ms 6648 KB Output is correct
6 Correct 758 ms 6936 KB Output is correct
7 Correct 772 ms 6904 KB Output is correct
8 Correct 828 ms 7032 KB Output is correct
9 Correct 816 ms 7288 KB Output is correct
10 Correct 832 ms 6008 KB Output is correct
11 Correct 765 ms 7164 KB Output is correct
12 Correct 769 ms 7416 KB Output is correct
13 Correct 783 ms 11896 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 12 ms 384 KB Output is correct
2 Correct 14 ms 256 KB Output is correct
3 Correct 12 ms 512 KB Output is correct
4 Correct 12 ms 384 KB Output is correct
5 Correct 12 ms 512 KB Output is correct
6 Correct 12 ms 512 KB Output is correct
7 Correct 13 ms 512 KB Output is correct
8 Correct 12 ms 512 KB Output is correct
9 Correct 12 ms 384 KB Output is correct
10 Correct 12 ms 384 KB Output is correct
11 Correct 12 ms 384 KB Output is correct
12 Correct 12 ms 512 KB Output is correct
13 Correct 12 ms 384 KB Output is correct
14 Correct 12 ms 512 KB Output is correct
15 Correct 12 ms 384 KB Output is correct
16 Correct 12 ms 384 KB Output is correct
17 Correct 13 ms 384 KB Output is correct
18 Correct 13 ms 384 KB Output is correct
19 Correct 5 ms 384 KB Output is correct
20 Correct 5 ms 384 KB Output is correct
21 Correct 5 ms 384 KB Output is correct
22 Correct 816 ms 5104 KB Output is correct
23 Correct 823 ms 6264 KB Output is correct
24 Correct 820 ms 6776 KB Output is correct
25 Correct 824 ms 5940 KB Output is correct
26 Correct 849 ms 6648 KB Output is correct
27 Correct 758 ms 6936 KB Output is correct
28 Correct 772 ms 6904 KB Output is correct
29 Correct 828 ms 7032 KB Output is correct
30 Correct 816 ms 7288 KB Output is correct
31 Correct 832 ms 6008 KB Output is correct
32 Correct 765 ms 7164 KB Output is correct
33 Correct 769 ms 7416 KB Output is correct
34 Correct 783 ms 11896 KB Output is correct
35 Correct 815 ms 10608 KB Output is correct
36 Correct 805 ms 11896 KB Output is correct
37 Correct 835 ms 12792 KB Output is correct
38 Correct 842 ms 12664 KB Output is correct
39 Correct 827 ms 12792 KB Output is correct
40 Correct 816 ms 12576 KB Output is correct
41 Correct 824 ms 12408 KB Output is correct
42 Correct 824 ms 12536 KB Output is correct
43 Correct 828 ms 11640 KB Output is correct
44 Correct 805 ms 12156 KB Output is correct
45 Correct 814 ms 12280 KB Output is correct
46 Correct 843 ms 13188 KB Output is correct
47 Correct 763 ms 11896 KB Output is correct
48 Correct 742 ms 11768 KB Output is correct
49 Correct 761 ms 10744 KB Output is correct
50 Correct 758 ms 11512 KB Output is correct
51 Correct 774 ms 12024 KB Output is correct
52 Correct 769 ms 11856 KB Output is correct