Submission #44073550


Source Code Expand

//Somos insignificantes. Por mais que você programe sua vida, a qualquer momento tudo pode mudar.
// If you have God on your side,everything becomes clear
#pragma GCC optimize("Ofast")
#pragma GCC target("avx,avx2,fma")

#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>

using namespace std;
using namespace __gnu_pbds;

typedef tree<int, null_type, less_equal<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set;
//To convert it into pairs use pair<int,int> instead of int and also make less_equal<pair<int,int>> 

template <typename T>
using ordered_multiset = tree<T, null_type, less_equal<T>, rb_tree_tag, tree_order_statistics_node_update>;
// To use ordered use ordered_multiset<type>S something like this

// n >>(k+1) << (k) + n%(1<<k+1)-1<<k;

#define ar array
#define ll long long
#define ld long double
#define sza(x) ((ll)x.size())
#define all(a) (a).begin(), (a).end()

const int MAX_N = 1e5 + 5;
const int MAX_L = 20; // ~ Log N
const long long MOD = 1e9 + 7;
const long long INF = 1e9 + 7;

typedef vector<int> vi;
typedef pair<int,int> ii;
typedef vector<ii> vii;
typedef vector<vi> vvi;
#define endl '\n';
#define fi first
#define popcount(x) __builtin_popcountll(x)
#define se second
#define LSOne(S) (S & (-S))
#define isBitSet(S, i) ((S >> i) & 1)
 /*vector<int> primes, is_prime, spf;

 void sieve(int n) {
     primes.clear();
     is_prime.assign(n + 1, 1);
     spf.assign(n + 1, 0);
     is_prime[0] = is_prime[1] = false;
     for(ll i=2;i<=n;i+=2){
         spf[i]=2;
         if(i!=2)is_prime[i]=false;
     }
     for (ll i = 3; i*i <= n; i++) {
         if (is_prime[i]) {
             primes.push_back(i);
             spf[i] = i;
             for (ll j = i * i; j <= n; j += i) {
                 is_prime[j] = false;
                 spf[j] = i;
             }
         }
     }
 }
*/

/* struct cmp{
    bool operator()(const pair<int,int>& v1,const pair<int,int>& v2) const{
    	
    }};*/
 long long binpow(long long a, long long b) {
    a %=MOD;
    long long res = 1;
    while (b > 0) {
        if (b & 1)
            res = res * a % MOD;
        a = a * a % MOD;
        b >>= 1;
    }
    res=res%MOD;
    return res;
}
ll n;
vector<vector<ll>>g;
vector<ll>sz;
ll ans=0;
void dfs(ll u,ll p){
    sz[u]=1;
    for(auto & x:g[u]){
        if(x==p)continue;
        dfs(x,u);
        sz[u]+=sz[x];
    }
}
void dfs2(ll u,ll p){
    ll rem = n-sz[u];
    ans+=rem*(sz[u]-1);
    ll pp=0;
    for(auto & x:g[u]){
        if(x==p)continue;
        pp+=sz[x];
    }
    for(auto & x:g[u]){
        if(x==p)continue;
        pp-=sz[x];
        ans+=sz[x]*pp;
        dfs2(x,u);
    }
}


void solve() {
    cin>>n;
    g.resize(n+1);
    sz.resize(n+1);
    for(ll i=0;i<n-1;i++){
        ll a,b;
        cin>>a>>b;
        g[a].push_back(b);
        g[b].push_back(a);
    }
    dfs(1,0);
    dfs2(1,0);
    ans=((n*(n-1)*(n-2))/6) - ans;
    cout<<ans;
  


}

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);
    
    #ifdef LOCAL
        freopen("input.txt", "r", stdin);
        freopen("output.txt", "w", stdout);
    #endif
    
    int tc=1;// cin >> tc;
    for (int t = 1; t <= tc; t++) {
        //cout << "Case #" << t  << ": ";
        solve();
    }
}

Submission Info

Submission Time
Task G - Avoid Straight Line
User pistadifiorano
Language C++ (GCC 9.2.1)
Score 550
Code Size 3440 Byte
Status AC
Exec Time 127 ms
Memory 22572 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 550 / 550
Status
AC × 3
AC × 40
Set Name Test Cases
Sample sample00.txt, sample01.txt, sample02.txt
All sample00.txt, sample01.txt, sample02.txt, testcase00.txt, testcase01.txt, testcase02.txt, testcase03.txt, testcase04.txt, testcase05.txt, testcase06.txt, testcase07.txt, testcase08.txt, testcase09.txt, testcase10.txt, testcase11.txt, testcase12.txt, testcase13.txt, testcase14.txt, testcase15.txt, testcase16.txt, testcase17.txt, testcase18.txt, testcase19.txt, testcase20.txt, testcase21.txt, testcase22.txt, testcase23.txt, testcase24.txt, testcase25.txt, testcase26.txt, testcase27.txt, testcase28.txt, testcase29.txt, testcase30.txt, testcase31.txt, testcase32.txt, testcase33.txt, testcase34.txt, testcase35.txt, testcase36.txt
Case Name Status Exec Time Memory
sample00.txt AC 8 ms 3556 KiB
sample01.txt AC 2 ms 3440 KiB
sample02.txt AC 3 ms 3556 KiB
testcase00.txt AC 2 ms 3612 KiB
testcase01.txt AC 2 ms 3500 KiB
testcase02.txt AC 2 ms 3608 KiB
testcase03.txt AC 73 ms 15304 KiB
testcase04.txt AC 121 ms 20436 KiB
testcase05.txt AC 85 ms 16352 KiB
testcase06.txt AC 121 ms 22572 KiB
testcase07.txt AC 46 ms 11676 KiB
testcase08.txt AC 73 ms 17272 KiB
testcase09.txt AC 55 ms 13796 KiB
testcase10.txt AC 80 ms 17232 KiB
testcase11.txt AC 68 ms 12344 KiB
testcase12.txt AC 118 ms 17876 KiB
testcase13.txt AC 88 ms 14708 KiB
testcase14.txt AC 116 ms 17824 KiB
testcase15.txt AC 62 ms 12392 KiB
testcase16.txt AC 96 ms 16564 KiB
testcase17.txt AC 59 ms 11268 KiB
testcase18.txt AC 109 ms 16824 KiB
testcase19.txt AC 66 ms 13916 KiB
testcase20.txt AC 87 ms 17340 KiB
testcase21.txt AC 46 ms 11288 KiB
testcase22.txt AC 90 ms 17272 KiB
testcase23.txt AC 70 ms 14240 KiB
testcase24.txt AC 127 ms 21792 KiB
testcase25.txt AC 91 ms 17680 KiB
testcase26.txt AC 118 ms 20264 KiB
testcase27.txt AC 80 ms 14416 KiB
testcase28.txt AC 112 ms 16812 KiB
testcase29.txt AC 64 ms 11596 KiB
testcase30.txt AC 122 ms 16884 KiB
testcase31.txt AC 61 ms 11012 KiB
testcase32.txt AC 107 ms 16776 KiB
testcase33.txt AC 105 ms 16548 KiB
testcase34.txt AC 108 ms 16884 KiB
testcase35.txt AC 103 ms 15740 KiB
testcase36.txt AC 105 ms 16860 KiB