Submission #1450767


Source Code Expand

#include <bits/stdc++.h>

using namespace std;

#define INF 1001000100010001000
#define MOD 1000000007
#define EPS 1e-10
#define int long long
#define rep(i, N) for (int i = 0; i < N; i++)
#define Rep(i, N) for (int i = 1; i < N; i++)
#define For(i, a, b) for (int i = (a); i < (b); i++)
#define pb push_back
#define eb emplece_back
#define mp make_pair
#define i_i pair<int, int>
#define vi vector<int>
#define vvi vector<vi >
#define vb vector<bool>
#define vvb vector<vb >
#define vp vector< i_i >
#define Edge pair< i_i, int>
#define all(a) (a).begin(), (a).end()
#define Int(x) int x; scanf("%lld", &x);
#define int2(x, y) int x, y; scanf("%lld %lld", &x, &y);
#define fir first
#define sec second
#define ffir first.first
#define fsec first.second
#define sfir second.first
#define ssec second.second
 
//int dxy[5] = {0, 1, 0, -1, 0};
// assign
 
signed main()
{
    int2(n, k);
    vi data(n);
    rep(i, n) {
        cin >> data[i];
    }

    vi sum(n, 0), posum(n, 0);
    sum[0] = data[0];
    posum[0] = (data[0] < 0) ? 0 : data[0];
    Rep(i, n) {
        sum[i] = sum[i-1] + data[i];
        posum[i] += posum[i-1] + ((data[i] < 0) ? 0 : data[i]);
    }
    /*
    rep(i, n) {
        std::cout << posum[i] << std::endl;
    }*/

    int ret = 0;
    rep(i, (n - k + 1)) {
      //  std::cout << "==========" << std::endl;
       // std::cout << "start" << i << std::endl;
        // kuro
        int tmp = 0;
        if (i) {
            tmp += posum[i-1];
        //    std::cout << "front: " << tmp << std::endl;
        }
        
       // std::cout << tmp << " ";
        tmp += posum[n-1] - posum[i + k - 1];
       // std::cout << "(" << i + k << "," << n-1 << ")  "
       //      << posum[n-1] - posum[i + k - 1] << std::endl;
        ret = max(ret, tmp);
        if (i) {
            ret = max(ret, tmp + sum[i + k - 1] - sum[i-1]);
        //    cout << sum[i + k - 1] - sum[i-1] << endl;
        } else {
            ret = max(ret, tmp + sum[i + k - 1]);
         //   cout << sum[i + k - 1] << endl;
        }
    }

    cout << ret << endl;
    return 0;
}

Submission Info

Submission Time
Task B - Contiguous Repainting
User Ti11192916
Language C++14 (GCC 5.4.1)
Score 400
Code Size 2171 Byte
Status AC
Exec Time 48 ms
Memory 2560 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:24:56: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
 #define int2(x, y) int x, y; scanf("%lld %lld", &x, &y);
                                                        ^
./Main.cpp:37:5: note: in expansion of macro ‘int2’
     int2(n, k);
     ^

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 400 / 400
Status
AC × 4
AC × 26
Set Name Test Cases
Sample 0_00.txt, 0_01.txt, 0_02.txt, 0_03.txt
All 0_00.txt, 0_01.txt, 0_02.txt, 0_03.txt, 1_00.txt, 1_01.txt, 1_02.txt, 1_03.txt, 1_04.txt, 1_05.txt, 1_06.txt, 1_07.txt, 1_08.txt, 1_09.txt, 1_10.txt, 1_11.txt, 1_12.txt, 1_13.txt, 1_14.txt, 1_15.txt, 1_16.txt, 1_17.txt, 1_18.txt, 1_19.txt, 1_20.txt, 1_21.txt
Case Name Status Exec Time Memory
0_00.txt AC 1 ms 256 KB
0_01.txt AC 1 ms 256 KB
0_02.txt AC 1 ms 256 KB
0_03.txt AC 1 ms 256 KB
1_00.txt AC 1 ms 256 KB
1_01.txt AC 1 ms 256 KB
1_02.txt AC 1 ms 256 KB
1_03.txt AC 18 ms 2560 KB
1_04.txt AC 44 ms 2560 KB
1_05.txt AC 48 ms 2560 KB
1_06.txt AC 42 ms 2560 KB
1_07.txt AC 42 ms 2560 KB
1_08.txt AC 43 ms 2560 KB
1_09.txt AC 43 ms 2560 KB
1_10.txt AC 42 ms 2560 KB
1_11.txt AC 43 ms 2560 KB
1_12.txt AC 43 ms 2560 KB
1_13.txt AC 43 ms 2560 KB
1_14.txt AC 42 ms 2560 KB
1_15.txt AC 44 ms 2560 KB
1_16.txt AC 43 ms 2560 KB
1_17.txt AC 41 ms 2560 KB
1_18.txt AC 43 ms 2560 KB
1_19.txt AC 41 ms 2560 KB
1_20.txt AC 43 ms 2560 KB
1_21.txt AC 43 ms 2560 KB