답안 #891043

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
891043 2023-12-22T06:46:04 Z Sir_Ahmed_Imran Training (IOI07_training) C++17
30 / 100
3 ms 604 KB
                              ///~~~LOTA~~~///
#include <bits/stdc++.h>
using namespace std;
#define nl '\n'
#define ff first
#define ss second
#define ll long long 
#define append push_back
#define pii pair<int,int>
#define all(x) (x).begin(),(x).end()
#define N 1001
int dp[N];
int dept[N];
vector<int> a[N];
void dfs(int v,int u){
    dept[v]=dept[u]+1;
    for(auto& i:a[v])
        if(i!=u)
            dfs(i,v);
}
void solve(){
    int n,m,o,p,q,r;
    cin>>n>>m;
    vector<pair<pii,int>> v,u;
    for(int i=o=0;i<m;i++){
        cin>>p>>q>>r;
        if(!r){
            a[p].append(q);
            a[q].append(p);
        }
        else
            v.append({{p,q},r});
        o+=r;
    }
    for(int i=1;i<=n;i++){
        if(a[i].size()==1){
            dfs(i,0);
            break;
        }
    }
    for(auto& i:v){
        if(abs(dept[i.ff.ff]-dept[i.ff.ss])%2) continue;
        u.append({{max(dept[i.ff.ff],dept[i.ff.ss])
        ,min(dept[i.ff.ff],dept[i.ff.ss])},i.ss});
    }
    sort(all(u));
    for(auto& i:u)
        for(int j=0;j<=i.ff.ss;j++)
            dp[i.ff.ff]=max(dp[i.ff.ff],dp[j]+i.ss);
    for(int i=r=0;i<=n;i++)
        r=max(r,dp[i]);
    cout<<o-r;
}
int main(){
    ios_base::sync_with_stdio(false);cin.tie(NULL);
    solve();
    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 604 KB Output is correct
2 Correct 2 ms 492 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Incorrect 0 ms 348 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 344 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 600 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 496 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 604 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 3 ms 604 KB Output isn't correct
2 Halted 0 ms 0 KB -