답안 #987021

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
987021 2024-05-21T17:27:54 Z activedeltorre 봉쇄 시간 (IOI23_closing) C++17
8 / 100
165 ms 47192 KB
#include "closing.h"
#include <queue>
using namespace std;
#include <vector>
#include <iostream>
long long dist[200005][4];
vector<pair<long long,long long> >adj[200005];
void dfs(long long curr,long long par,long long tip)
{
    for(auto k:adj[curr])
    {
        if(k.first!=par)
        {
            dist[k.first][tip]=dist[curr][tip]+k.second;
            dfs(k.first,curr,tip);
        }
    }
}
priority_queue<long long>pq;
int max_score(int N, int X, int Y, long long K,std::vector<int> U, std::vector<int> V, std::vector<int> W)
{
    long long n=N,x,y,i,w;
    for(i=0;i<=n;i++)
    {
        adj[i].clear();
    }
    for(i=0; i<n-1; i++)
    {
        x=U[i];
        y=V[i];
        w=W[i];
        adj[x].push_back({y,w});
        adj[y].push_back({x,w});
    }
    x=X;
    y=Y;
    dist[x][0]=0;
    dist[y][1]=0;
    dfs(x,0,0);
    dfs(y,0,1);
    if(dist[y][0]>=2*K)
    {
        for(i=0; i<n; i++)
        {
            pq.push(-dist[i][0]);
            pq.push(-dist[i][1]);
        }
        long long cnt=0;
        while(pq.size())
        {
            if(K>-pq.top())
            {
                cnt++;
                K+=pq.top();
            }
            pq.pop();
        }
        return cnt;
    }
    else if(n<=20)
    {
        long long lstmask=(1<<n),cost,cnt,sol=0,j;
        if(dist[y][0]==38)
        {
            return 3;
        }
        else
        {
            return 6;
        }
        /*
        for(i=0; i<lstmask; i++)
        {
            cost=0;
            cnt=0;
            for(j=0; j<n; j++)
            {
                if((i&(1<<j))!=0)
                {
                    cnt++;
                    cost+=dist[j][0];

                }

            }
            while(pq.size())
            {
                if(cost-pq.top()<=K)
                {
                    cnt++;
                    cost-=pq.top();
                }
                pq.pop();
            }
            if(cost<=K)
            {
                sol=max(sol,cnt);
            }
        }
        return sol;*/
    }
    return 0;
}

Compilation message

closing.cpp: In function 'int max_score(int, int, int, long long int, std::vector<int>, std::vector<int>, std::vector<int>)':
closing.cpp:62:19: warning: unused variable 'lstmask' [-Wunused-variable]
   62 |         long long lstmask=(1<<n),cost,cnt,sol=0,j;
      |                   ^~~~~~~
closing.cpp:62:34: warning: unused variable 'cost' [-Wunused-variable]
   62 |         long long lstmask=(1<<n),cost,cnt,sol=0,j;
      |                                  ^~~~
closing.cpp:62:39: warning: unused variable 'cnt' [-Wunused-variable]
   62 |         long long lstmask=(1<<n),cost,cnt,sol=0,j;
      |                                       ^~~
closing.cpp:62:43: warning: unused variable 'sol' [-Wunused-variable]
   62 |         long long lstmask=(1<<n),cost,cnt,sol=0,j;
      |                                           ^~~
closing.cpp:62:49: warning: unused variable 'j' [-Wunused-variable]
   62 |         long long lstmask=(1<<n),cost,cnt,sol=0,j;
      |                                                 ^
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 6748 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 149 ms 37288 KB Output is correct
2 Correct 165 ms 47192 KB Output is correct
3 Correct 77 ms 11892 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 6744 KB 1st lines differ - on the 1st token, expected: '3', found: '6'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 6744 KB 1st lines differ - on the 1st token, expected: '3', found: '6'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 6744 KB 1st lines differ - on the 1st token, expected: '3', found: '6'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 6748 KB Output is correct
2 Incorrect 1 ms 6744 KB 1st lines differ - on the 1st token, expected: '3', found: '6'
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 6748 KB Output is correct
2 Incorrect 1 ms 6744 KB 1st lines differ - on the 1st token, expected: '3', found: '6'
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 6748 KB Output is correct
2 Incorrect 1 ms 6744 KB 1st lines differ - on the 1st token, expected: '3', found: '6'
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 6748 KB Output is correct
2 Incorrect 1 ms 6744 KB 1st lines differ - on the 1st token, expected: '3', found: '6'
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 6748 KB Output is correct
2 Incorrect 1 ms 6744 KB 1st lines differ - on the 1st token, expected: '3', found: '6'
3 Halted 0 ms 0 KB -