답안 #1110655

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1110655 2024-11-10T07:05:47 Z otarius Sjeckanje (COCI21_sjeckanje) C++17
55 / 110
32 ms 616 KB
#include <bits/stdc++.h>
#include <bits/extc++.h>
using namespace __gnu_pbds;
using namespace std;

// #pragma GCC optimize("Ofast")
// #pragma GCC optimize ("unroll-loops")
// #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")

#define ff first
#define sc second
#define pb push_back
#define ll long long
#define pll pair<ll, ll>
#define pii pair<int, int>
#define ull unsigned long long
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()

#define int long long
// #define int unsigned long long

// #define ordered_set(T) tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>
// #define ordered_multiset(T) tree<T, null_type, less_equal<T>, rb_tree_tag, tree_order_statistics_node_update>

void open_file(string filename) {
    freopen((filename + ".in").c_str(), "r", stdin);
    freopen((filename + ".out").c_str(), "w", stdout);
}

// const ll mod = 1e9 + 7;
// const ll mod = 998244353;

const ll inf = 1e9;
const ll biginf = 1e18;
const int maxN = 3005;

int n, q, arr[maxN], dp[maxN];
int query() {
    int j = 1;
    for (int i = 2; i <= n; i++) {
        dp[i] = max(dp[j - 1] + abs(arr[i] - arr[j]), dp[j] + abs(arr[i] - arr[j + 1]));
        if (i < n && (arr[i] - arr[i - 1]) * (arr[i + 1] - arr[i]) <= 0) j = i;
    } return dp[n];
}
void solve() {
    cin >> n >> q;
    for (int i = 1; i <= n; i++)
        cin >> arr[i];
    while (q--) {
        int l, r, x;
        cin >> l >> r >> x;
        for (int i = l; i <= r; i++) arr[i] += x;
        cout << query() << '\n';
    }
}
int32_t main() { 
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr); cout.tie(nullptr);
    
    int t = 1;
    // cin >> t;
    while (t--) {
        solve();
        cout << '\n';
    }
    return 0;
}

Compilation message

Main.cpp: In function 'void open_file(std::string)':
Main.cpp:27:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   27 |     freopen((filename + ".in").c_str(), "r", stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Main.cpp:28:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   28 |     freopen((filename + ".out").c_str(), "w", stdout);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 336 KB Output is correct
2 Correct 1 ms 336 KB Output is correct
3 Correct 1 ms 336 KB Output is correct
4 Correct 1 ms 336 KB Output is correct
5 Correct 1 ms 468 KB Output is correct
6 Correct 1 ms 336 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 336 KB Output is correct
2 Correct 1 ms 336 KB Output is correct
3 Correct 1 ms 336 KB Output is correct
4 Correct 1 ms 336 KB Output is correct
5 Correct 1 ms 468 KB Output is correct
6 Correct 1 ms 336 KB Output is correct
7 Correct 28 ms 592 KB Output is correct
8 Correct 28 ms 592 KB Output is correct
9 Correct 28 ms 592 KB Output is correct
10 Correct 32 ms 616 KB Output is correct
11 Correct 28 ms 592 KB Output is correct
12 Correct 31 ms 592 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 336 KB Output is correct
2 Correct 1 ms 336 KB Output is correct
3 Correct 1 ms 336 KB Output is correct
4 Correct 1 ms 336 KB Output is correct
5 Correct 1 ms 468 KB Output is correct
6 Correct 1 ms 336 KB Output is correct
7 Correct 28 ms 592 KB Output is correct
8 Correct 28 ms 592 KB Output is correct
9 Correct 28 ms 592 KB Output is correct
10 Correct 32 ms 616 KB Output is correct
11 Correct 28 ms 592 KB Output is correct
12 Correct 31 ms 592 KB Output is correct
13 Runtime error 2 ms 592 KB Execution killed with signal 11
14 Halted 0 ms 0 KB -