Submission #379920

# Submission time Handle Problem Language Result Execution time Memory
379920 2021-03-19T17:18:45 Z ignaciocanta Crocodile's Underground City (IOI11_crocodile) C++14
100 / 100
656 ms 63588 KB
#include <bits/stdc++.h>
#include "crocodile.h"
 
using namespace std;
 
using tint = long long;
using ld = long double;
 
#define FOR(i,a,b) for (int i = (a); i < (b); ++i)
#define F0R(i,a) FOR(i,0,a)
#define ROF(i,a,b) for (int i = (b)-1; i >= (a); --i)
#define R0F(i,a) ROF(i,0,a)
#define trav(a,x) for (auto& a: x)
 
using pi = pair<int,int>;
using pl = pair<tint,tint>;
using vi = vector<int>;
using vpi = vector<pi>;
using vpl = vector<pl>;
using vvi = vector<vi>;
using vl = vector<tint>;
using vb = vector<bool>;
 
#define pb push_back
#define pf push_front
#define rsz resize
#define all(x) begin(x), end(x)
#define rall(x) x.rbegin(), x.rend() 
#define sz(x) (int)(x).size()
#define ins insert
 
#define f first
#define s second
#define mp make_pair
 
#define DBG(x) cerr << #x << " = " << x << endl;
 
const int MOD = 1e9+7;
const tint mod = 998244353;
const int MX = 1e5+5;
const tint INF = 1e18; 
const int inf = 2e9;
const ld PI = acos(ld(-1)); 
const ld eps = 1e-5;
 
const int dx[4] = {1, -1, 0, 0};
const int dy[4] = {0, 0, 1, -1};
 
template<class T> void remDup(vector<T> &v){ 
    sort(all(v)); v.erase(unique(all(v)),end(v));
}
 
template<class T> bool ckmin(T& a, const T& b) {
    return b < a ? a = b, 1 : 0; 
} 
template<class T> bool ckmax(T& a, const T& b) {
    return a < b ? a = b, 1 : 0; 
}
 
bool valid(int x, int y, int n, int m){
    return (0<=x && x<n && 0<=y && y<m);
}
 
int cdiv(int a, int b) { return a/b+((a^b)>0&&a%b); } //redondea p arriba
int fdiv(int a, int b) { return a/b-((a^b)<0&&a%b); } //redondea p abajo
 
void NACHO(string name = ""){
    ios_base::sync_with_stdio(0); cin.tie(0);
    if(sz(name)){
		freopen((name+".in").c_str(), "r", stdin);
		freopen((name+".out").c_str(), "w", stdout);
	}
}

vpi adj[MX];
int dist[MX], dist2[MX];
bool vis[MX];
priority_queue<pi, vpi, greater<pi>> q;

int travel_plan(int N, int M, int R[][2], int L[], int K, int P[])
{
	F0R(i, M){
		int u = R[i][0], v = R[i][1], w = L[i];
		adj[u].pb(mp(v, w)); adj[v].pb(mp(u, w));
	}
	F0R(i, N) dist[i] = inf, dist2[i] = inf;
	F0R(i, K){
		dist[P[i]] = 0; dist2[P[i]] = 0;
		q.push(mp(0, P[i]));
	}
	while(sz(q)){
		int u = q.top().s; q.pop();
		if(vis[u]) continue;
		vis[u] = 1;
		trav(v, adj[u]){
			if(dist2[u]+v.s < dist[v.f]){
				dist2[v.f] = dist[v.f];
				dist[v.f] = dist2[u]+v.s;
				q.push(mp(dist2[v.f], v.f));
			}else if(dist2[u]+v.s < dist2[v.f]){
				dist2[v.f] = dist2[u]+v.s;
				q.push(mp(dist2[v.f], v.f));
			}
		}
	}
	return dist2[0];
}

Compilation message

crocodile.cpp: In function 'void NACHO(std::string)':
crocodile.cpp:70:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
   70 |   freopen((name+".in").c_str(), "r", stdin);
      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
crocodile.cpp:71:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
   71 |   freopen((name+".out").c_str(), "w", stdout);
      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 2 ms 2668 KB Output is correct
2 Correct 2 ms 2668 KB Output is correct
3 Correct 3 ms 2796 KB Output is correct
4 Correct 3 ms 2796 KB Output is correct
5 Correct 3 ms 2796 KB Output is correct
6 Correct 3 ms 2796 KB Output is correct
7 Correct 4 ms 2796 KB Output is correct
8 Correct 3 ms 2796 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 2668 KB Output is correct
2 Correct 2 ms 2668 KB Output is correct
3 Correct 3 ms 2796 KB Output is correct
4 Correct 3 ms 2796 KB Output is correct
5 Correct 3 ms 2796 KB Output is correct
6 Correct 3 ms 2796 KB Output is correct
7 Correct 4 ms 2796 KB Output is correct
8 Correct 3 ms 2796 KB Output is correct
9 Correct 4 ms 2924 KB Output is correct
10 Correct 2 ms 2668 KB Output is correct
11 Correct 3 ms 2796 KB Output is correct
12 Correct 6 ms 3180 KB Output is correct
13 Correct 5 ms 3180 KB Output is correct
14 Correct 3 ms 2796 KB Output is correct
15 Correct 4 ms 2796 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 2668 KB Output is correct
2 Correct 2 ms 2668 KB Output is correct
3 Correct 3 ms 2796 KB Output is correct
4 Correct 3 ms 2796 KB Output is correct
5 Correct 3 ms 2796 KB Output is correct
6 Correct 3 ms 2796 KB Output is correct
7 Correct 4 ms 2796 KB Output is correct
8 Correct 3 ms 2796 KB Output is correct
9 Correct 4 ms 2924 KB Output is correct
10 Correct 2 ms 2668 KB Output is correct
11 Correct 3 ms 2796 KB Output is correct
12 Correct 6 ms 3180 KB Output is correct
13 Correct 5 ms 3180 KB Output is correct
14 Correct 3 ms 2796 KB Output is correct
15 Correct 4 ms 2796 KB Output is correct
16 Correct 515 ms 58464 KB Output is correct
17 Correct 107 ms 15080 KB Output is correct
18 Correct 174 ms 16488 KB Output is correct
19 Correct 656 ms 63588 KB Output is correct
20 Correct 348 ms 49644 KB Output is correct
21 Correct 48 ms 8172 KB Output is correct
22 Correct 414 ms 46444 KB Output is correct