답안 #367507

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
367507 2021-02-17T14:27:33 Z cpp219 Uzastopni (COCI15_uzastopni) C++14
16 / 160
500 ms 29232 KB
#include <bits/stdc++.h>
#define ll int
#define ld long double
#define fs first
#define sc second
using namespace std;
const ll N = 1e4 + 9;
const ll inf = 1e9 + 7;
typedef pair<int,int> LL;
vector<ll> g[N],q[N];
ll n,v[N],x,y;
bitset<110> flag[N][110];
vector<LL> s[N];
void DFS(ll u){
    for (auto i : g[u]) DFS(i); q[N].clear();
    for (auto i : g[u]){
        for (auto j : s[i]) q[j.fs].push_back(j.sc);
    }
    for (ll l = 109;l > 0;l--){
        if (l == v[u]){
            flag[u][l] |= flag[u][l + 1]; flag[u][l].set(l);
        }
        else{
            for (auto i : q[l]){
                if (l > v[u] || i < v[u]){
                    flag[u][l] |= flag[u][i + 1]; flag[u][l].set(i);
                }
            }
        }
        for (ll i = 100;i >= l;i--) if (flag[u][l][i] == 1 && l <= v[u] && i >= v[u]) s[u].push_back({l,i});
    }
}

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);
    #define task "tst"
    if (fopen(task".INP","r")){
        freopen(task".INP","r",stdin);
        //freopen(task".OUT","w",stdout);
    }
    cin>>n;
    for (ll i = 1;i <= n;i++) cin>>v[i];
    for (ll i = 1;i < n;i++) cin>>x>>y,g[x].push_back(y);
    DFS(1); cout<<s[1].size();
}

Compilation message

uzastopni.cpp: In function 'void DFS(int)':
uzastopni.cpp:15:5: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
   15 |     for (auto i : g[u]) DFS(i); q[N].clear();
      |     ^~~
uzastopni.cpp:15:33: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
   15 |     for (auto i : g[u]) DFS(i); q[N].clear();
      |                                 ^
uzastopni.cpp: In function 'int main()':
uzastopni.cpp:39:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
   39 |         freopen(task".INP","r",stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 1132 KB Output isn't correct
2 Incorrect 2 ms 1260 KB Output isn't correct
3 Incorrect 2 ms 1260 KB Output isn't correct
4 Incorrect 2 ms 1260 KB Output isn't correct
5 Incorrect 2 ms 1260 KB Output isn't correct
6 Incorrect 3 ms 1260 KB Output isn't correct
7 Incorrect 2 ms 1388 KB Output isn't correct
8 Incorrect 2 ms 1260 KB Output isn't correct
9 Correct 2 ms 1260 KB Output is correct
10 Correct 2 ms 1260 KB Output is correct
11 Execution timed out 1092 ms 15188 KB Time limit exceeded
12 Execution timed out 1063 ms 17188 KB Time limit exceeded
13 Execution timed out 1062 ms 19436 KB Time limit exceeded
14 Execution timed out 1053 ms 19496 KB Time limit exceeded
15 Execution timed out 1092 ms 19748 KB Time limit exceeded
16 Execution timed out 1089 ms 19440 KB Time limit exceeded
17 Execution timed out 1093 ms 19436 KB Time limit exceeded
18 Execution timed out 1092 ms 19308 KB Time limit exceeded
19 Execution timed out 1087 ms 22112 KB Time limit exceeded
20 Execution timed out 1095 ms 29232 KB Time limit exceeded