답안 #114293

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
114293 2019-05-31T17:59:36 Z MohamedAhmed04 Ceste (COCI17_ceste) C++14
16 / 160
2500 ms 512 KB
#include <bits/stdc++.h>

using namespace std;

const int MAX = 2010 ;

struct edge
{
    int to , time , cost ;
    edge(int ve , int ti , int co)
    {
        to = ve ;
        time = ti ;
        cost = co ;
    }
};

vector< vector<edge> >adj(MAX) ;
int vis[MAX] ;
int n , m ;

long long ans[MAX] ;

void dfs(int node , int sumt , int sumc)
{
    //trying a thing.
    long long now = (sumt * 1ll) * (sumc * 1ll) ;
    if(now > ans[node] * 4ll)
        return ;
    ans[node] = min(ans[node] , now) ;
    for(auto &child : adj[node])
    {
        if(vis[child.to] == 1)
            continue ;
        vis[child.to] = 1 ;
        dfs(child.to , sumt + child.time , sumc + child.cost) ;
        vis[child.to] = 0 ;
    }
    return ;
}

int readint()
{
	bool minus = false;
	int result = 0;
	char ch;
	ch = getchar();
	while (true) {
		if (ch == '-') break;
		if (ch >= '0' && ch <= '9') break;
		ch = getchar();
	}
	if (ch == '-') minus = true; else result = ch-'0';
	while (true) {
		ch = getchar();
		if (ch < '0' || ch > '9') break;
		result = result*10 + (ch - '0');
	}
	if (minus)
		return -result;
	else
		return result;
}

int main()
{
    n = readint() ;
    m = readint() ;
    int a , b , c , d ;
    for(int i = 0 ; i < m ; ++i)
    {
        a = readint() ;
        b = readint() ;
        c = readint() ;
        d = readint() ;
        adj[a].push_back(edge(b , c , d)) ;
        adj[b].push_back(edge(a , c , d)) ;
    }
    long long cons = 1e17 ;
    for(int i = 1 ; i <= n ; ++i)
        ans[i] = cons ;
    dfs(1 , 0 , 0) ;
    for(int i = 2 ; i <= n ; ++i)
    {
        if(ans[i] == cons)
            ans[i] = -1 ;
        printf("%lld\n" , ans[i]);
    }
    return 0 ;
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 384 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 384 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Correct 474 ms 456 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 384 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 2529 ms 512 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 2560 ms 384 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 2559 ms 512 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 2528 ms 512 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 2523 ms 512 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 2536 ms 512 KB Time limit exceeded
2 Halted 0 ms 0 KB -