답안 #987019

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
987019 2024-05-21T17:25:54 Z activedeltorre 봉쇄 시간 (IOI23_closing) C++17
0 / 100
100 ms 27984 KB
#include "closing.h"
#include <queue>
using namespace std;
#include <vector>
#include <iostream>
int dist[200005][4];
vector<pair<int,int> >adj[200005];
void dfs(int curr,int par,int 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<int>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)
{
    int 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]);
        }
        int 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 Incorrect 100 ms 27984 KB 1st lines differ - on the 1st token, expected: '451', found: '0'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 6748 KB 1st lines differ - on the 1st token, expected: '3', found: '6'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 6748 KB 1st lines differ - on the 1st token, expected: '3', found: '6'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 6748 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 6748 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 6748 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 6748 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 6748 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 6748 KB 1st lines differ - on the 1st token, expected: '3', found: '6'
3 Halted 0 ms 0 KB -