Submission #773000

# Submission time Handle Problem Language Result Execution time Memory
773000 2023-07-04T13:57:20 Z davitmarg Power Plant (JOI20_power) C++17
47 / 100
1500 ms 20704 KB
/*
DavitMarg
In pr honky-tonk,
Down in Mexico
*/
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <string>
#include <cstring>
#include <map>
#include <unordered_map>
#include <set>
#include <unordered_set>
#include <queue>
#include <bitset>
#include <stack>
#include <cassert>
#include <iterator>
#include <random>
#include <chrono>
#define mod 1000000007ll
#define LL long long
#define LD long double
#define MP make_pair    
#define PB push_back
#define all(v) v.begin(), v.end()
#define fastIO ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
using namespace std;

const int N = 500005;

int n;
string s;
vector<int> g[N];
int dp[N];

int dfs(int v, int p, bool start = false)
{
    dp[v] = s[v] - '0';
    int sum = 0;
    int mx = 0;
    for(int i = 0; i < g[v].size(); i++)
    {
        int to = g[v][i];
        if(to == p)
            continue;
        sum += dfs(to, v);
        mx = max(dp[to], mx);
    }
    dp[v] = max(dp[v], sum - (s[v] - '0'));
    if(start)
        dp[v] = max(dp[v], (s[v] - '0') + mx);
    return dp[v];
}

LL myRand()
{
    return ((LL)rand() << 16) + rand();
}

void solve()
{
    cin >> n;
    for(int i = 1; i <= n - 1; i++)
    {
        int a, b;
        cin >> a >> b;
        g[a].PB(b);
        g[b].PB(a);
    }
    cin>>s;
    s = '#' + s;
    int ans = 0;

    vector<int> p;
    for(int i = 1; i <= n; i++)
        if(s[i] == '1')
            p.PB(i);

    srand(69);
    for(int i = 0; i < 150; i++)
    {
        int v = p[myRand() % p.size()];
        ans = max(ans, dfs(v, -1, true));
    }
    cout<<ans<<endl;
}

int main()
{
    fastIO;
    int T = 1;
    //cin >> T;
    while (T--)
    {
        solve();
    }

    return 0;
}

/*


cd /mnt/d/Davit/Projects/VSCode; g++ -std=c++17 -O2 -Wall -Wextra -Ddeath -Wshadow source.cpp -o orz; ./orz; rm orz

*/

Compilation message

power.cpp: In function 'int dfs(int, int, bool)':
power.cpp:45:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   45 |     for(int i = 0; i < g[v].size(); i++)
      |                    ~~^~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 5 ms 11988 KB Output is correct
2 Correct 5 ms 11988 KB Output is correct
3 Correct 5 ms 11988 KB Output is correct
4 Correct 5 ms 11988 KB Output is correct
5 Correct 6 ms 12016 KB Output is correct
6 Correct 5 ms 11988 KB Output is correct
7 Correct 7 ms 11988 KB Output is correct
8 Correct 6 ms 11988 KB Output is correct
9 Correct 5 ms 11988 KB Output is correct
10 Correct 6 ms 12116 KB Output is correct
11 Correct 5 ms 11988 KB Output is correct
12 Correct 5 ms 11996 KB Output is correct
13 Correct 5 ms 12020 KB Output is correct
14 Correct 5 ms 11988 KB Output is correct
15 Correct 5 ms 12060 KB Output is correct
16 Correct 5 ms 11988 KB Output is correct
17 Correct 5 ms 11988 KB Output is correct
18 Correct 5 ms 11988 KB Output is correct
19 Correct 5 ms 11988 KB Output is correct
20 Correct 6 ms 12064 KB Output is correct
21 Correct 5 ms 11988 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 11988 KB Output is correct
2 Correct 5 ms 11988 KB Output is correct
3 Correct 5 ms 11988 KB Output is correct
4 Correct 5 ms 11988 KB Output is correct
5 Correct 6 ms 12016 KB Output is correct
6 Correct 5 ms 11988 KB Output is correct
7 Correct 7 ms 11988 KB Output is correct
8 Correct 6 ms 11988 KB Output is correct
9 Correct 5 ms 11988 KB Output is correct
10 Correct 6 ms 12116 KB Output is correct
11 Correct 5 ms 11988 KB Output is correct
12 Correct 5 ms 11996 KB Output is correct
13 Correct 5 ms 12020 KB Output is correct
14 Correct 5 ms 11988 KB Output is correct
15 Correct 5 ms 12060 KB Output is correct
16 Correct 5 ms 11988 KB Output is correct
17 Correct 5 ms 11988 KB Output is correct
18 Correct 5 ms 11988 KB Output is correct
19 Correct 5 ms 11988 KB Output is correct
20 Correct 6 ms 12064 KB Output is correct
21 Correct 5 ms 11988 KB Output is correct
22 Correct 9 ms 12116 KB Output is correct
23 Correct 9 ms 12164 KB Output is correct
24 Correct 12 ms 12180 KB Output is correct
25 Correct 9 ms 12156 KB Output is correct
26 Correct 8 ms 12152 KB Output is correct
27 Correct 9 ms 12148 KB Output is correct
28 Correct 9 ms 12116 KB Output is correct
29 Correct 10 ms 12340 KB Output is correct
30 Correct 14 ms 12228 KB Output is correct
31 Correct 9 ms 12116 KB Output is correct
32 Correct 11 ms 12116 KB Output is correct
33 Correct 12 ms 12108 KB Output is correct
34 Correct 9 ms 12116 KB Output is correct
35 Correct 9 ms 12096 KB Output is correct
36 Correct 9 ms 12116 KB Output is correct
37 Correct 9 ms 12136 KB Output is correct
38 Correct 9 ms 12084 KB Output is correct
39 Correct 10 ms 12244 KB Output is correct
40 Correct 9 ms 12116 KB Output is correct
41 Correct 9 ms 12116 KB Output is correct
42 Correct 9 ms 12116 KB Output is correct
43 Correct 9 ms 12116 KB Output is correct
44 Correct 9 ms 12116 KB Output is correct
45 Correct 9 ms 12116 KB Output is correct
46 Correct 9 ms 12200 KB Output is correct
47 Correct 8 ms 12072 KB Output is correct
48 Correct 8 ms 12244 KB Output is correct
49 Correct 9 ms 12208 KB Output is correct
50 Correct 13 ms 12116 KB Output is correct
51 Correct 11 ms 12116 KB Output is correct
52 Correct 9 ms 12116 KB Output is correct
53 Correct 9 ms 12116 KB Output is correct
54 Correct 9 ms 12116 KB Output is correct
55 Correct 9 ms 12116 KB Output is correct
56 Correct 8 ms 12156 KB Output is correct
57 Correct 10 ms 12320 KB Output is correct
58 Correct 8 ms 12172 KB Output is correct
59 Correct 8 ms 12116 KB Output is correct
60 Correct 10 ms 12244 KB Output is correct
61 Correct 8 ms 12152 KB Output is correct
62 Correct 10 ms 12244 KB Output is correct
63 Correct 8 ms 12116 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 11988 KB Output is correct
2 Correct 5 ms 11988 KB Output is correct
3 Correct 5 ms 11988 KB Output is correct
4 Correct 5 ms 11988 KB Output is correct
5 Correct 6 ms 12016 KB Output is correct
6 Correct 5 ms 11988 KB Output is correct
7 Correct 7 ms 11988 KB Output is correct
8 Correct 6 ms 11988 KB Output is correct
9 Correct 5 ms 11988 KB Output is correct
10 Correct 6 ms 12116 KB Output is correct
11 Correct 5 ms 11988 KB Output is correct
12 Correct 5 ms 11996 KB Output is correct
13 Correct 5 ms 12020 KB Output is correct
14 Correct 5 ms 11988 KB Output is correct
15 Correct 5 ms 12060 KB Output is correct
16 Correct 5 ms 11988 KB Output is correct
17 Correct 5 ms 11988 KB Output is correct
18 Correct 5 ms 11988 KB Output is correct
19 Correct 5 ms 11988 KB Output is correct
20 Correct 6 ms 12064 KB Output is correct
21 Correct 5 ms 11988 KB Output is correct
22 Correct 9 ms 12116 KB Output is correct
23 Correct 9 ms 12164 KB Output is correct
24 Correct 12 ms 12180 KB Output is correct
25 Correct 9 ms 12156 KB Output is correct
26 Correct 8 ms 12152 KB Output is correct
27 Correct 9 ms 12148 KB Output is correct
28 Correct 9 ms 12116 KB Output is correct
29 Correct 10 ms 12340 KB Output is correct
30 Correct 14 ms 12228 KB Output is correct
31 Correct 9 ms 12116 KB Output is correct
32 Correct 11 ms 12116 KB Output is correct
33 Correct 12 ms 12108 KB Output is correct
34 Correct 9 ms 12116 KB Output is correct
35 Correct 9 ms 12096 KB Output is correct
36 Correct 9 ms 12116 KB Output is correct
37 Correct 9 ms 12136 KB Output is correct
38 Correct 9 ms 12084 KB Output is correct
39 Correct 10 ms 12244 KB Output is correct
40 Correct 9 ms 12116 KB Output is correct
41 Correct 9 ms 12116 KB Output is correct
42 Correct 9 ms 12116 KB Output is correct
43 Correct 9 ms 12116 KB Output is correct
44 Correct 9 ms 12116 KB Output is correct
45 Correct 9 ms 12116 KB Output is correct
46 Correct 9 ms 12200 KB Output is correct
47 Correct 8 ms 12072 KB Output is correct
48 Correct 8 ms 12244 KB Output is correct
49 Correct 9 ms 12208 KB Output is correct
50 Correct 13 ms 12116 KB Output is correct
51 Correct 11 ms 12116 KB Output is correct
52 Correct 9 ms 12116 KB Output is correct
53 Correct 9 ms 12116 KB Output is correct
54 Correct 9 ms 12116 KB Output is correct
55 Correct 9 ms 12116 KB Output is correct
56 Correct 8 ms 12156 KB Output is correct
57 Correct 10 ms 12320 KB Output is correct
58 Correct 8 ms 12172 KB Output is correct
59 Correct 8 ms 12116 KB Output is correct
60 Correct 10 ms 12244 KB Output is correct
61 Correct 8 ms 12152 KB Output is correct
62 Correct 10 ms 12244 KB Output is correct
63 Correct 8 ms 12116 KB Output is correct
64 Execution timed out 1569 ms 20704 KB Time limit exceeded
65 Halted 0 ms 0 KB -