Submission #2337430
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
typedef long long int64;
const int64 INF = 1LL << 58;
int main()
{
int N, M, L, S, T;
int64 g[300][300];
int x[16], y[16];
int64 dp[1 << 16][16];
while(scanf("%d %d %d %d %d", &N, &M, &L, &S, &T), N) {
--S;
fill_n(*g, 300 * 300, INF);
for(int i = 0; i < 300; i++) g[i][i] = 0;
fill_n(*dp, (1 << 16) * 16, INF);
for(int i = 0; i < M; i++) {
int A, B, C;
scanf("%d %d %d", &A, &B, &C);
--A, --B;
g[A][B] = g[B][A] = C;
}
for(int i = 0; i < L; i++) {
scanf("%d %d", &x[i], &y[i]);
--x[i];
}
for(int k = 0; k < N; k++) {
for(int i = 0; i < N; i++) {
for(int j = 0; j < N; j++) {
g[i][j] = min(g[i][j], g[i][k] + g[k][j]);
}
}
}
for(int i = 0; i < L; i++) {
dp[1 << i][i] = g[S][x[i]] + y[i];
}
for(int i = 0; i < 1 << L; i++) {
for(int j = 0; j < L; j++) {
if(dp[i][j] == INF) continue;
for(int k = 0; k < L; k++) {
if((i >> k) & 1) continue;
dp[i | (1 << k)][k] = min(dp[i | (1 << k)][k], dp[i][j] + g[x[j]][x[k]] + y[k]);
}
}
}
int ret = 0;
for(int i = 0; i < 1 << L; i++) {
for(int j = 0; j < L; j++) {
if(dp[i][j] + g[x[j]][S] <= T) {
ret = max(ret, __builtin_popcount(i));
}
}
}
printf("%d\n", ret);
}
}
Submission Info
Submission Time |
|
Task |
C - SIRO Challenge |
User |
ei13333 |
Language |
C++14 (GCC 5.4.1) |
Score |
100 |
Code Size |
1498 Byte |
Status |
AC |
Exec Time |
1054 ms |
Memory |
9088 KB |
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:17:3: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
while(scanf("%d %d %d %d %d", &N, &M, &L, &S, &T), N) {
^
./Main.cpp:26:36: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d %d %d", &A, &B, &C);
^
./Main.cpp:31:35: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d %d", &x[i], &y[i]);
^
Judge Result
Set Name |
all |
Score / Max Score |
100 / 100 |
Status |
|
Set Name |
Test Cases |
all |
Merged |
Case Name |
Status |
Exec Time |
Memory |
Merged |
AC |
1054 ms |
9088 KB |