#include <bits/stdc++.h>
using namespace std;
#define ll long long
const ll mmod = 998244353;
#define vl vector<long long>
#define vll vector<vector<long long>>
ll pow(ll x, ll n, ll mod){
if (n == 0){
return 1;
}
ll half = pow(x, n / 2, mod);
ll half_square = (half * half) % mod;
if (n % 2 == 0) {
return half_square;
} else {
return (half_square * x) % mod;
}
}
ll inversion_x(ll x, ll m){
ll vysledek = pow(x,m-2);
return vysledek;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
ll n,k;
cin >> n >>k;
vl in;
vl out;
for (ll i = 0; i < n; i++){ll num; cin >> num; in.push_back(num);};
for (ll i = 0; i < n; i++){ll num; cin >> num; out.push_back(num);};
if (n <= 6000){
ll m = -10e18;
for (ll i = 0; i < n-k+1; i++){
multiset<ll> maxima;
ll sumain = 0, sumaout = 0;
for (ll j = i; j < i + k; j++){
sumaout += out[j];
sumain += in[j];
maxima.insert(out[j]);
}
m = max(sumaout - sumain, m);
for (ll j = i+k; j < n; j++){
sumain += in[j];
sumaout += out[j];
maxima.insert(out[j]);
sumaout -= *maxima.begin();
maxima.erase(*maxima.begin());
m = max(sumaout - sumain, m);
}
}
cout << m;
}
if (k == 2){
vl prefix {0};
ll suma = 0;
for (ll i = 0; i < n; i++){suma += in[i]; prefix.push_back(suma);}
vl optimum;
ll maximum;
}
return 0;
}
컴파일 시 표준 에러 (stderr) 메시지
trade.cpp: In function 'int main()':
trade.cpp:45:16: warning: overflow in conversion from 'double' to 'long long int' changes value from '-1.0e+19' to '-9223372036854775808' [-Woverflow]
45 | ll m = -10e18;
| ^~~~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |