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
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
0 / 400 |
Status |
|
|
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 |