Submission #1694508
Source Code Expand
#include <algorithm> #include <bitset> #include <complex> #include <deque> #include <exception> #include <fstream> #include <functional> #include <iomanip> #include <ios> #include <iosfwd> #include <iostream> #include <istream> #include <iterator> #include <limits> #include <list> #include <locale> #include <map> #include <memory> #include <new> #include <numeric> #include <ostream> #include <queue> #include <set> #include <sstream> #include <stack> #include <stdexcept> #include <streambuf> #include <string> #include <typeinfo> #include <utility> #include <valarray> #include <vector> #define REP(i, m, n) for(int i=int(m);i<int(n);i++) #define EACH(i, c) for (auto &(i): c) #define all(c) begin(c),end(c) #define EXIST(s, e) ((s).find(e)!=(s).end()) #define SORT(c) sort(begin(c),end(c)) #define pb emplace_back #define MP make_pair #define SZ(a) int((a).size()) //#define LOCAL 0 //#ifdef LOCAL //#define DEBUG(s) cout << (s) << endl //#define dump(x) cerr << #x << " = " << (x) << endl //#define BR cout << endl; //#else //#define DEBUG(s) do{}while(0) //#define dump(x) do{}while(0) //#define BR //#endif //改造 typedef long long int ll; using namespace std; #define INF (1 << 20) #define INFl (ll)5e15 #define DEBUG 0 //デバッグする時1にしてね //ここから編集する int main() { int N,K; cin >> N >> K; vector<ll> a(N); REP(i,0,N){ cin >> a[i]; } //K個の連続する0以上や0以下を調べる int mi_s = 0; int pl_s = 0; bool mis_flag = false; bool pls_flag = false; ll seq = 0; ll max_seq = 0; ll min_seq = 0; int max_pos = K-1; int min_pos = K-1; REP(i,0,K){ if(a[i] >= 0){ pl_s++; } if(a[i] <= 0){ mi_s++; } if(pl_s >= K){ pls_flag = true; } if(mi_s >= K){ mis_flag = true; } seq += a[i]; } max_seq = seq; min_seq = seq; REP(i,K,N){ if(a[i] >= 0){ pl_s++; } if(a[i] <= 0){ mi_s++; } if(a[i-K] >= 0){ pl_s--; } if(a[i-K] <= 0){ mi_s--; } if(pl_s >= K){ pls_flag = true; } if(mi_s >= K){ mis_flag = true; } seq += a[i]; seq -= a[i - K]; if(max_seq < seq){ max_pos = i; max_seq = seq; } if(min_seq > seq){ min_pos = i; min_seq = seq; } } if(pls_flag || mis_flag){ //すべてのa[i] >= 0を足し出力 ll ans = 0; REP(i,0,N){ ans += max(0LL,a[i]); } cout << ans << endl; return 0; } ll ansA = 0; //しわ寄せをgetする REP(i,0,N){ if(i > max_pos - K && i <= max_pos){ ansA += a[i]; }else{ if(a[i] >= 0) ansA += a[i]; } } ll ansB = 0; //しわ寄せをgetしない REP(i,0,N){ if(i > min_pos - K && i <= min_pos){ // ansB += a[i]; }else{ if(a[i] >= 0) ansB += a[i]; } } cout << max(ansA,ansB) << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | B - Contiguous Repainting |
User | homesentinel |
Language | C++14 (GCC 5.4.1) |
Score | 0 |
Code Size | 3406 Byte |
Status | WA |
Exec Time | 48 ms |
Memory | 1024 KB |
Judge Result
Set Name | Sample | All | ||||||
---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 0 / 400 | ||||||
Status |
|
|
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 | 1024 KB |
1_04.txt | AC | 44 ms | 1024 KB |
1_05.txt | AC | 48 ms | 1024 KB |
1_06.txt | AC | 43 ms | 1024 KB |
1_07.txt | AC | 43 ms | 1024 KB |
1_08.txt | AC | 43 ms | 1024 KB |
1_09.txt | AC | 43 ms | 1024 KB |
1_10.txt | WA | 42 ms | 1024 KB |
1_11.txt | AC | 46 ms | 1024 KB |
1_12.txt | WA | 43 ms | 1024 KB |
1_13.txt | WA | 43 ms | 1024 KB |
1_14.txt | WA | 41 ms | 1024 KB |
1_15.txt | WA | 44 ms | 1024 KB |
1_16.txt | WA | 43 ms | 1024 KB |
1_17.txt | WA | 41 ms | 1024 KB |
1_18.txt | WA | 43 ms | 1024 KB |
1_19.txt | WA | 41 ms | 1024 KB |
1_20.txt | WA | 43 ms | 1024 KB |
1_21.txt | WA | 43 ms | 1024 KB |