Submission #2241786


Source Code Expand

#include <bits/stdc++.h>
using namespace std;
 
typedef long long ll;
typedef unsigned long long ull;
 
#define FOR(i,a,b) for(int i=(a);i<(b);i++)
#define RFOR(i,a,b) for(int i=(b)-1;i>=(a);i--)
#define REP(i,n) FOR(i,0,n)
#define RREP(i,n)  RFOR(i,0,n)
#define VSORT(v) sort(v.begin(), v.end())
#define DVSORT(v) sort(v.begin(), v.end(),greater<int>())
#define SORT(v, n) sort(v, v+n)
#define DSORT(v,n) sort(v, v+n,greater<int>())
#define vi vector<int>
#define pb push_back
 
template <class T> void chmin(T&a,const T&b) { a = min(a,b); }
template <class T> void chmax(T&a,const T&b) { a = max(a,b); }
 
void print(){cout<<endl;}
template <class Head, class... Tail>
void print(Head&& h,Tail&&... t){ 
	if(sizeof...(t)==0)
		cout<<h;
	else
		cout<<h<<' ';
	print(move(t)...);
}
 
const double EPS =1e-9;
const long INF =2147483647;//32bit 2*1e+9
const long MOD =1e+9+7;
#define PI 3.14159265258979
#define P pair<int,int>
#define PPi pair<P,int>
 
int dy[]={0, 0, 1, -1, 1, 1, -1, -1};
int dx[]={1, -1, 0, 0, 1, -1, -1, 1};
const int MAX_V = 100;
const int MAX_E = 1000;

struct edge{ int from,to,cost,No;};
int V,E;
vector<edge> G[MAX_V];
int d[MAX_V];
int pd[MAX_V];

int used[MAX_E];

#define T tuple<int,int,int>

void dijkstra(int s){
	priority_queue<T,vector<T>,greater<T>> que;
	fill(d,d+V,INF);
	fill(pd,pd+V,-1);

	d[s]=0;
	que.push(T(0,s,-1));

	while(!que.empty()){
		T p=que.top();
		que.pop();

		int v=get<1>(p);
		if(d[v]<(get<0>(p))) continue;

		if(get<2>(p)!=-1) used[get<2>(p)]=1;

		REP(i,(int)G[v].size()){
			edge e=G[v][i];
			if(d[e.to]>d[v]+e.cost){
				d[e.to]=d[v]+e.cost;
				pd[e.to]=v;
				que.push(T(d[e.to],e.to,e.No));
			}
		}
	}
}

vector<int> get_path(int t){
	vector<int> path;
	for(;t!=-1;t=pd[t]) path.pb(t);
	reverse(path.begin(),path.end());
	return path;
}


int main(void){
	cin.tie(0);
	ios_base::sync_with_stdio(false);

	fill(used,used+1000,0);
	cin>>V>>E;

	edge e;
	REP(i,E){
		cin>>e.from>>e.to>>e.cost;
		e.from--; e.to--; e.No=i;
		G[e.from].pb(e);
		//有向グラフの場合不要
		swap(e.from,e.to);
		G[e.from].pb(e);
	}
	dijkstra(0);
	
	int result=0;
	REP(i,E) if(used[i]==0) result++;
	print(result);
	return 0;
}

Submission Info

Submission Time
Task D - Candidates of No Shortest Paths
User stnae678
Language C++14 (GCC 5.4.1)
Score 0
Code Size 2288 Byte
Status WA
Exec Time 1 ms
Memory 384 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 400
Status
AC × 2
AC × 7
WA × 23
Set Name Test Cases
Sample sample_01.txt, sample_02.txt
All sample_01.txt, sample_02.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.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_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_28.txt
Case Name Status Exec Time Memory
sample_01.txt AC 1 ms 256 KB
sample_02.txt AC 1 ms 256 KB
subtask_1_01.txt AC 1 ms 256 KB
subtask_1_02.txt WA 1 ms 256 KB
subtask_1_03.txt WA 1 ms 256 KB
subtask_1_04.txt AC 1 ms 256 KB
subtask_1_05.txt WA 1 ms 256 KB
subtask_1_06.txt WA 1 ms 256 KB
subtask_1_07.txt WA 1 ms 256 KB
subtask_1_08.txt WA 1 ms 256 KB
subtask_1_09.txt WA 1 ms 256 KB
subtask_1_10.txt WA 1 ms 256 KB
subtask_1_11.txt WA 1 ms 256 KB
subtask_1_12.txt WA 1 ms 256 KB
subtask_1_13.txt AC 1 ms 256 KB
subtask_1_14.txt WA 1 ms 256 KB
subtask_1_15.txt AC 1 ms 256 KB
subtask_1_16.txt WA 1 ms 256 KB
subtask_1_17.txt WA 1 ms 256 KB
subtask_1_18.txt WA 1 ms 256 KB
subtask_1_19.txt WA 1 ms 256 KB
subtask_1_20.txt WA 1 ms 256 KB
subtask_1_21.txt WA 1 ms 256 KB
subtask_1_22.txt WA 1 ms 256 KB
subtask_1_23.txt WA 1 ms 256 KB
subtask_1_24.txt WA 1 ms 384 KB
subtask_1_25.txt WA 1 ms 384 KB
subtask_1_26.txt WA 1 ms 256 KB
subtask_1_27.txt WA 1 ms 384 KB
subtask_1_28.txt AC 1 ms 256 KB