답안 #1074537

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1074537 2024-08-25T11:02:37 Z TB_ 통행료 (IOI18_highway) C++17
0 / 100
139 ms 10936 KB
#include <bits/stdc++.h>
#include "highway.h"


using namespace std;

#define ll long long
#define fo(i, n) for(ll i = 0; i<(n); i++)
#define pb push_back
#define F first
#define S second
#define deb(x) cout << #x << " = " << (x) << endl 
#define deb2(x, y) cout << #x << " = " << (x)  << ", " << #y << " = " << (y) << endl 
typedef vector<ll> vl;
typedef vector<vl> vvl;
 auto start = std::chrono::steady_clock::now(); // since(start).count()
    


void find_pair(int N, std::vector<int> U, std::vector<int> V, int A, int B) {
    ll start = chrono::steady_clock::now().time_since_epoch().count();
    int M = U.size();
    vl invalid(N, 0);
    for (int j = 0; j < 5; ++j) {
        std::vector<int> w(M);
        for (int i = 0; i < M; ++i) {
            w[i] = rand()%2;
        }
        long long toll = ask(w);
        // deb(toll);
        queue<pair<ll, ll>> pq;
        pq.push({0, 0});
        vl seen(N, 0);
        ll cost, pos;
        vector<vector<pair<ll, ll>>> adj(N);
        fo(i, M){
            adj[U[i]].pb({V[i], (w[i]?B:A)});
            adj[V[i]].pb({U[i], (w[i]?B:A)});
        }
        while(!pq.empty()){
            tie(cost, pos) = pq.front();
            pq.pop();
            cost = -cost;
            if(seen[pos]) continue;
            // deb2(pos, cost);
            invalid[pos]|=cost!=toll;
            seen[pos] = 1;
            for(auto &[v, w] : adj[pos]){
                pq.push({-cost-w, v});
            }
        }
    }
    int ans = 0;
    fo(i, N) if(!invalid[i]) ans = i; 
    // fo(i, N) deb(invalid[i]);
    answer(0, ans);
}

Compilation message

highway.cpp: In function 'void find_pair(int, std::vector<int>, std::vector<int>, int, int)':
highway.cpp:21:8: warning: unused variable 'start' [-Wunused-variable]
   21 |     ll start = chrono::steady_clock::now().time_since_epoch().count();
      |        ^~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 1 ms 344 KB Output is correct
3 Correct 0 ms 344 KB Output is correct
4 Correct 0 ms 344 KB Output is correct
5 Correct 0 ms 344 KB Output is correct
6 Correct 1 ms 344 KB Output is correct
7 Incorrect 0 ms 344 KB Output is incorrect: {s, t} is wrong.
8 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 14 ms 1388 KB Output is correct
3 Incorrect 139 ms 10936 KB Output is incorrect: {s, t} is wrong.
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 10 ms 1384 KB Output is incorrect: {s, t} is wrong.
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 344 KB Output is incorrect: {s, t} is wrong.
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 14 ms 1644 KB Output is incorrect: {s, t} is wrong.
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 14 ms 1684 KB Output is incorrect: {s, t} is wrong.
2 Halted 0 ms 0 KB -