답안 #1068654

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1068654 2024-08-21T11:11:00 Z hasan2006 메기 농장 (IOI22_fish) C++17
9 / 100
1000 ms 595028 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 = 4e5 + 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].size() == 0 || 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 = 0; 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);
                dp[i][j] = max(dp[i][j] , max(dp[i - 1][x] , d[i - 1][x]));
            }
            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(6, 5, {5, 4, 0 , 2 , 1}, {0, 0, 0 , 0 , 0}, {979169285 ,288589606,  56346688 , 568303254 , 617066964});
}*/
// 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 = 0; 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:27:40: warning: unused variable 'y' [-Wunused-variable]
   27 |     ll i , j , l , r , s = 0 , f , x , y , k ,ans = 0;
      |                                        ^
fish.cpp:27:44: warning: unused variable 'k' [-Wunused-variable]
   27 |     ll i , j , l , r , s = 0 , f , x , y , k ,ans = 0;
      |                                            ^
# 결과 실행 시간 메모리 Grader output
1 Runtime error 322 ms 595028 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 116 ms 289692 KB Output is correct
2 Execution timed out 1061 ms 297556 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 146 ms 347732 KB Output is correct
2 Correct 149 ms 347548 KB Output is correct
3 Correct 165 ms 315476 KB Output is correct
4 Correct 151 ms 330040 KB Output is correct
5 Correct 165 ms 298320 KB Output is correct
6 Correct 165 ms 298324 KB Output is correct
7 Correct 160 ms 298320 KB Output is correct
8 Correct 157 ms 298320 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 109 ms 289616 KB Output is correct
2 Correct 108 ms 289624 KB Output is correct
3 Correct 121 ms 289684 KB Output is correct
4 Correct 111 ms 289620 KB Output is correct
5 Correct 113 ms 289608 KB Output is correct
6 Correct 123 ms 289620 KB Output is correct
7 Correct 117 ms 289676 KB Output is correct
8 Correct 105 ms 289856 KB Output is correct
9 Correct 103 ms 289872 KB Output is correct
10 Correct 127 ms 289872 KB Output is correct
11 Correct 135 ms 289876 KB Output is correct
12 Incorrect 118 ms 289856 KB 1st lines differ - on the 1st token, expected: '450122905247', found: '449924300888'
13 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 109 ms 289616 KB Output is correct
2 Correct 108 ms 289624 KB Output is correct
3 Correct 121 ms 289684 KB Output is correct
4 Correct 111 ms 289620 KB Output is correct
5 Correct 113 ms 289608 KB Output is correct
6 Correct 123 ms 289620 KB Output is correct
7 Correct 117 ms 289676 KB Output is correct
8 Correct 105 ms 289856 KB Output is correct
9 Correct 103 ms 289872 KB Output is correct
10 Correct 127 ms 289872 KB Output is correct
11 Correct 135 ms 289876 KB Output is correct
12 Incorrect 118 ms 289856 KB 1st lines differ - on the 1st token, expected: '450122905247', found: '449924300888'
13 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 109 ms 289616 KB Output is correct
2 Correct 108 ms 289624 KB Output is correct
3 Correct 121 ms 289684 KB Output is correct
4 Correct 111 ms 289620 KB Output is correct
5 Correct 113 ms 289608 KB Output is correct
6 Correct 123 ms 289620 KB Output is correct
7 Correct 117 ms 289676 KB Output is correct
8 Correct 105 ms 289856 KB Output is correct
9 Correct 103 ms 289872 KB Output is correct
10 Correct 127 ms 289872 KB Output is correct
11 Correct 135 ms 289876 KB Output is correct
12 Incorrect 118 ms 289856 KB 1st lines differ - on the 1st token, expected: '450122905247', found: '449924300888'
13 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 146 ms 347732 KB Output is correct
2 Correct 149 ms 347548 KB Output is correct
3 Correct 165 ms 315476 KB Output is correct
4 Correct 151 ms 330040 KB Output is correct
5 Correct 165 ms 298320 KB Output is correct
6 Correct 165 ms 298324 KB Output is correct
7 Correct 160 ms 298320 KB Output is correct
8 Correct 157 ms 298320 KB Output is correct
9 Correct 202 ms 350048 KB Output is correct
10 Correct 176 ms 295292 KB Output is correct
11 Correct 188 ms 300628 KB Output is correct
12 Correct 124 ms 289624 KB Output is correct
13 Correct 108 ms 289616 KB Output is correct
14 Correct 120 ms 289868 KB Output is correct
15 Correct 115 ms 289616 KB Output is correct
16 Correct 109 ms 289720 KB Output is correct
17 Correct 117 ms 289852 KB Output is correct
18 Correct 169 ms 347736 KB Output is correct
19 Correct 168 ms 347728 KB Output is correct
20 Correct 167 ms 347728 KB Output is correct
21 Correct 154 ms 347568 KB Output is correct
22 Incorrect 214 ms 350948 KB 1st lines differ - on the 1st token, expected: '45561826463480', found: '45556153296716'
23 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 322 ms 595028 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -