답안 #1067990

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1067990 2024-08-21T06:27:27 Z hasan2006 메기 농장 (IOI22_fish) C++17
0 / 100
1000 ms 155168 KB
#include <bits/stdc++.h>

using namespace std;

#define TL ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
#define rall(s) s.rbegin(),s.rend()
#define all(s) s.begin(),s.end()
#define pb push_back
#define se second
#define fi first
#define ll long long
#define ld long double
#define YES cout<<"YES\n"
#define Yes cout<<"Yes\n"
#define yes cout<<"yes\n"
#define NO cout<<"NO\n"
#define No cout<<"No\n"
#define no cout<<"no\n"


const int N = 1e5 + 9 , mod = 1e9 + 7;
ll a[N] , b[N] , c[N];

deque<pair<int,int>>v[N];
vector<ll>dp[N] , d[N];

ll max_weights(int n, int m , vector<int>a , vector<int>b , vector<int>c){
    ll i , j , l , r , s = 0 , f , x , y , k ,ans = 0;
    for(i = 0; i < m; i++)
        v[a[i]].pb({b[i], c[i]});
    for(i = 0; i < n; i++){
        sort(all(v[i]));
        if(v[i].front().fi != 0)
            v[i].push_front({0 , 0});
        v[i].pb({n , 0});
        d[i].resize(v[i].size() , 0);
        dp[i].resize(v[i].size() , 0);
        if(i == 0)
        continue;
        l = 0 , s= 0;
        for(j = 0; j < v[i].size(); j++){
            while(l < v[i - 1].size() && v[i - 1][l].fi < v[i][j].fi)
                s += v[i - 1][l].se , l++;
            f = 0;
            for(x = 0; x < l; x++)
                dp[i][j] = max(dp[i][j] , dp[i - 1][x] + s - f) , f += v[i - 1][x].se;
            if(v[i][l].fi == v[i][j].fi)
                dp[i][j] = max(dp[i][j] , max(dp[i - 1][l] , d[i - 1][l]));
            r = l;
            f = 0;
            if(i > 1)
                for(x = 0; x < v[i - 2].size(); x++){
                    while(r < v[i - 1].size() && v[i - 1][r].fi < v[i - 2][x].fi)
                        f += v[i - 1][r].se , r++;
                    dp[i][j] = max(dp[i][j] , s + f + max(dp[i - 2][x] , d[i - 2][x]));
                }
            f = 0 , r = j;
            for(x = l; x < v[i - 1].size(); x++){
                while(r < v[i].size() && v[i][r].fi < v[i - 1][x].fi)
                    f += v[i][r].se , r++,
                d[i][j] = max(d[i][j] , max(dp[i - 1][x] , d[i - 1][x]) + f);
            }
            ans = max({ans , dp[i][j] , d[i][j]});
        }
    }
    return ans;
}
/*
int main(){
    TL;

    #ifndef ONLINE_JUDGE
        freopen("input.txt", "r", stdin);
        freopen("output.txt", "w", stdout);
    #endif
    cout<<max_weights(5, 4, {0, 1, 4, 3}, {2, 1, 4, 3}, {5, 2, 1, 3});
}*/
// Author : حسن

Compilation message

fish.cpp: In function 'long long int max_weights(int, int, std::vector<int>, std::vector<int>, std::vector<int>)':
fish.cpp:41:22: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::deque<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   41 |         for(j = 0; j < v[i].size(); j++){
      |                    ~~^~~~~~~~~~~~~
fish.cpp:42:21: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::deque<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   42 |             while(l < v[i - 1].size() && v[i - 1][l].fi < v[i][j].fi)
      |                   ~~^~~~~~~~~~~~~~~~~
fish.cpp:52:30: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::deque<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   52 |                 for(x = 0; x < v[i - 2].size(); x++){
      |                            ~~^~~~~~~~~~~~~~~~~
fish.cpp:53:29: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::deque<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   53 |                     while(r < v[i - 1].size() && v[i - 1][r].fi < v[i - 2][x].fi)
      |                           ~~^~~~~~~~~~~~~~~~~
fish.cpp:58:26: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::deque<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   58 |             for(x = l; x < v[i - 1].size(); x++){
      |                        ~~^~~~~~~~~~~~~~~~~
fish.cpp:59:25: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::deque<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   59 |                 while(r < v[i].size() && v[i][r].fi < v[i - 1][x].fi)
      |                       ~~^~~~~~~~~~~~~
fish.cpp:28:40: warning: unused variable 'y' [-Wunused-variable]
   28 |     ll i , j , l , r , s = 0 , f , x , y , k ,ans = 0;
      |                                        ^
fish.cpp:28:44: warning: unused variable 'k' [-Wunused-variable]
   28 |     ll i , j , l , r , s = 0 , f , x , y , k ,ans = 0;
      |                                            ^
# 결과 실행 시간 메모리 Grader output
1 Runtime error 123 ms 155168 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 34 ms 72272 KB Output is correct
2 Execution timed out 1087 ms 81568 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 46 ms 78676 KB Output is correct
2 Correct 42 ms 78680 KB Output is correct
3 Incorrect 60 ms 80128 KB 1st lines differ - on the 1st token, expected: '21261825233649', found: '21207416074342'
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 37 ms 72284 KB Output is correct
2 Correct 33 ms 72284 KB Output is correct
3 Correct 35 ms 72200 KB Output is correct
4 Correct 35 ms 72272 KB Output is correct
5 Correct 32 ms 72284 KB Output is correct
6 Correct 32 ms 72384 KB Output is correct
7 Correct 32 ms 72284 KB Output is correct
8 Correct 30 ms 72304 KB Output is correct
9 Correct 36 ms 72272 KB Output is correct
10 Correct 33 ms 72532 KB Output is correct
11 Incorrect 32 ms 72540 KB 1st lines differ - on the 1st token, expected: '278622587073', found: '278452976884'
12 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 37 ms 72284 KB Output is correct
2 Correct 33 ms 72284 KB Output is correct
3 Correct 35 ms 72200 KB Output is correct
4 Correct 35 ms 72272 KB Output is correct
5 Correct 32 ms 72284 KB Output is correct
6 Correct 32 ms 72384 KB Output is correct
7 Correct 32 ms 72284 KB Output is correct
8 Correct 30 ms 72304 KB Output is correct
9 Correct 36 ms 72272 KB Output is correct
10 Correct 33 ms 72532 KB Output is correct
11 Incorrect 32 ms 72540 KB 1st lines differ - on the 1st token, expected: '278622587073', found: '278452976884'
12 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 37 ms 72284 KB Output is correct
2 Correct 33 ms 72284 KB Output is correct
3 Correct 35 ms 72200 KB Output is correct
4 Correct 35 ms 72272 KB Output is correct
5 Correct 32 ms 72284 KB Output is correct
6 Correct 32 ms 72384 KB Output is correct
7 Correct 32 ms 72284 KB Output is correct
8 Correct 30 ms 72304 KB Output is correct
9 Correct 36 ms 72272 KB Output is correct
10 Correct 33 ms 72532 KB Output is correct
11 Incorrect 32 ms 72540 KB 1st lines differ - on the 1st token, expected: '278622587073', found: '278452976884'
12 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 46 ms 78676 KB Output is correct
2 Correct 42 ms 78680 KB Output is correct
3 Incorrect 60 ms 80128 KB 1st lines differ - on the 1st token, expected: '21261825233649', found: '21207416074342'
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 123 ms 155168 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -