Submission #1285647


Source Code Expand

#include<iostream>
#include<iomanip>
#include<cstdlib>
#include<stdio.h>
#include<time.h>
#include<math.h>
#include<algorithm>
#include<string>
#include<vector>
#include<list>
#include<queue>
#include<stack>
#include<deque>
#include<set>
#include<map>
#define REP(i, N) for(ll i = 0; i < N; ++i)
#define FOR(i, a, b) for(ll i = a; i < b; ++i)
#define ALL(a) (a).begin(),(a).end()
#define pb push_back
#define INF 1000000000000000000
#define MOD 1000000007
using namespace std;
typedef long long ll;
typedef pair<ll, ll> P;
int dx[4] = {1, 0, -1, 0};
int dy[4] = {0, 1, 0, -1};
int qx[8] = {1, 1, 0, -1, -1, -1, 0, 1};
int qy[8] = {0, 1, 1, 1, 0, -1, -1, -1};

struct edge{__int128 from, to, cost;};

int main(void) {
	ll N, M;
	cin>>N>>M;
	vector<__int128> d(N, -INF);
	vector<edge> es(M);
	REP(i, M) {
		ll a, b, c;
		cin>>a>>b>>c;
		--a;
		--b;
		edge e = {a, b, c};
		es[i] = e;
	}
	d[0] = 0;
	__int128 cnt = 0;
	ll cnthoge = 0;
	bool f = false;
	while(true) {
		if(f || d[N - 1] > 10000000000000 || d[N - 1] < -10000000000000 && d[N - 1] != -INF || cnt > 10000) {
			f = true;
			break;
		}
		bool update = false;
		REP(i, es.size()) {
			edge e = es[i];
			if(d[e.from] != -INF && d[e.to] < d[e.from] + e.cost) {
				d[e.to] = d[e.from] + e.cost;
				if(e.to == N - 1) ++cnthoge;
				if(d[e.to] > 10000000000000 || d[e.to] < -10000000000000) {
					f = true;
					break;
				}
				update = true;
			}
		}
		if(!update) break;
		++cnt;
	}
	if(f && cnthoge > 1000)cout<<"inf"<<endl;
	else {
		if(d[N - 1] == -INF) {
			cout<<0<<endl;
		} else {
			ll ans = d[N - 1];
			cout<<ans<<endl;
		}
	}
}

Submission Info

Submission Time
Task D - Score Attack
User gazelle
Language C++14 (GCC 5.4.1)
Score 400
Code Size 1678 Byte
Status AC
Exec Time 44 ms
Memory 384 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 400 / 400
Status
AC × 3
AC × 30
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_1.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_2.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt, subtask_1_25.txt, subtask_1_26.txt, subtask_1_27.txt, subtask_1_3.txt, subtask_1_4.txt, subtask_1_5.txt, subtask_1_6.txt, subtask_1_7.txt, subtask_1_8.txt, subtask_1_9.txt
Case Name Status Exec Time Memory
sample_01.txt AC 1 ms 256 KB
sample_02.txt AC 1 ms 256 KB
sample_03.txt AC 1 ms 256 KB
subtask_1_1.txt AC 1 ms 256 KB
subtask_1_10.txt AC 2 ms 256 KB
subtask_1_11.txt AC 4 ms 256 KB
subtask_1_12.txt AC 8 ms 384 KB
subtask_1_13.txt AC 1 ms 256 KB
subtask_1_14.txt AC 7 ms 256 KB
subtask_1_15.txt AC 8 ms 384 KB
subtask_1_16.txt AC 1 ms 256 KB
subtask_1_17.txt AC 1 ms 256 KB
subtask_1_18.txt AC 2 ms 256 KB
subtask_1_19.txt AC 2 ms 384 KB
subtask_1_2.txt AC 2 ms 256 KB
subtask_1_20.txt AC 1 ms 256 KB
subtask_1_21.txt AC 2 ms 256 KB
subtask_1_22.txt AC 3 ms 384 KB
subtask_1_23.txt AC 2 ms 256 KB
subtask_1_24.txt AC 2 ms 384 KB
subtask_1_25.txt AC 28 ms 256 KB
subtask_1_26.txt AC 2 ms 256 KB
subtask_1_27.txt AC 44 ms 256 KB
subtask_1_3.txt AC 2 ms 256 KB
subtask_1_4.txt AC 2 ms 256 KB
subtask_1_5.txt AC 26 ms 256 KB
subtask_1_6.txt AC 43 ms 256 KB
subtask_1_7.txt AC 2 ms 256 KB
subtask_1_8.txt AC 2 ms 256 KB
subtask_1_9.txt AC 1 ms 256 KB