| 提出番号 | 1947 |
|---|---|
| 提出者 | T.M |
| 言語 | C++ |
| 提出日時 | 2018-08-04 14:41:31 |
| 問題名 | (73)観光計画 |
| 結果 | WA |
| 点数 | 0% |
| テストケース | 結果 | 得点 | 実行時間 | メモリ使用量 |
|---|---|---|---|---|
| 1 | AC | 100% | 52ms | 28592KB |
| 2 | AC | 100% | 67ms | 33472KB |
| 3 | AC | 100% | 32ms | 20240KB |
| 4 | AC | 100% | 81ms | 40416KB |
| 5 | AC | 100% | 38ms | 23376KB |
| 6 | AC | 100% | 64ms | 35168KB |
| 7 | AC | 100% | 99ms | 46064KB |
| 8 | AC | 100% | 110ms | 47920KB |
| 9 | AC | 100% | 26ms | 21248KB |
| 10 | AC | 100% | 105ms | 55728KB |
| 11 | AC | 100% | 39ms | 24944KB |
| 12 | AC | 100% | 15ms | 14256KB |
| 13 | AC | 100% | 44ms | 28512KB |
| 14 | AC | 100% | 108ms | 46448KB |
| 15 | AC | 100% | 92ms | 44880KB |
| 16 | AC | 100% | 61ms | 33360KB |
| 17 | AC | 100% | 112ms | 54400KB |
| 18 | AC | 100% | 74ms | 35712KB |
| 19 | AC | 100% | 20ms | 19632KB |
| 20 | AC | 100% | 57ms | 31792KB |
| 21 | AC | 100% | 20ms | 14160KB |
| 22 | AC | 100% | 43ms | 24432KB |
| 23 | AC | 100% | 45ms | 25264KB |
| 24 | AC | 100% | 136ms | 59712KB |
| 25 | AC | 100% | 103ms | 49920KB |
| 26 | AC | 100% | 96ms | 49712KB |
| 27 | AC | 100% | 22ms | 17216KB |
| 28 | WA | 0% | 19ms | 14064KB |
| 29 | AC | 100% | 66ms | 30720KB |
| 30 | WA | 0% | 58ms | 34480KB |
| 31 | AC | 100% | 126ms | 58272KB |
| 32 | AC | 100% | 46ms | 31328KB |
| 33 | AC | 100% | 14ms | 11792KB |
| 34 | AC | 100% | 106ms | 43136KB |
| 35 | AC | 100% | 12ms | 10656KB |
| 36 | AC | 100% | 76ms | 40368KB |
| 37 | AC | 100% | 36ms | 23088KB |
| 38 | AC | 100% | 9ms | 8048KB |
| 39 | AC | 100% | 123ms | 56208KB |
| 40 | AC | 100% | 12ms | 12736KB |
| 41 | AC | 100% | 92ms | 48336KB |
| 42 | AC | 100% | 29ms | 18288KB |
| 43 | AC | 100% | 127ms | 57728KB |
| 44 | AC | 100% | 63ms | 31456KB |
| 45 | AC | 100% | 81ms | 41712KB |
| 46 | AC | 100% | 61ms | 36416KB |
| 47 | AC | 100% | 101ms | 46704KB |
| 48 | AC | 100% | 88ms | 50208KB |
| 49 | AC | 100% | 52ms | 28208KB |
| 50 | AC | 100% | 105ms | 45360KB |
| 51 | AC | 100% | 20ms | 13104KB |
| 52 | AC | 100% | 50ms | 26928KB |
| 53 | AC | 100% | 36ms | 21632KB |
| 54 | AC | 100% | 53ms | 34832KB |
| 55 | AC | 100% | 21ms | 15664KB |
| 56 | AC | 100% | 56ms | 34192KB |
| 57 | AC | 100% | 34ms | 28512KB |
| 58 | AC | 100% | 48ms | 26928KB |
| 59 | AC | 100% | 34ms | 24944KB |
| 60 | AC | 100% | 29ms | 18336KB |
| 61 | AC | 100% | 39ms | 25072KB |
| 62 | AC | 100% | 68ms | 42080KB |
| 63 | WA | 0% | 100ms | 43152KB |
| 64 | AC | 100% | 86ms | 48768KB |
| 65 | AC | 100% | 90ms | 42416KB |
| 66 | AC | 100% | 3ms | 8464KB |
| 67 | WA | 0% | 70ms | 38592KB |
| 68 | WA | 0% | 61ms | 34432KB |
| 69 | AC | 100% | 176ms | 68512KB |
| 70 | AC | 100% | 63ms | 32512KB |
#include<stdio.h>
long long R=1,C=1,H[2000010],N[2000010];
long long MAX(int a,int b){return a<b?b:a;}
//評価関数(いまはMIN)
int hyouka(int a,int b){
if(C<b)return 1;
if(C<a||b==0)return 0;
return N[H[a]]<N[H[b]]?1:0;
}
//挿入関数
void hin(long long a){
int i=C++;
for(N[H[0]=R]=a;hyouka(0,i/2);i/=2)H[i]=H[i/2];
H[i]=R++;
}
//取り出す関数
int hout(){
int rt=H[1],i,j=2,k=H[--C];
for(i=1;hyouka(i,C);i=j)H[i]=H[j=i*2+1-hyouka(i*2,i*2+1)];
H[j/2]=k;
return rt;
}
long long CO[100010];
long long i,id[600010],ta[600010],nt[600010],f[600010]={0};
void dijk(int v,int e,int *fr,int *to,int *co,int mi){
for(i=0;i<v;i++)ta[i]=-1;
for(i=0;i<v;i++)CO[i]=1e17;
for(i=CO[mi]=0;i<e;i++){
nt[i]=ta[fr[i]];
ta[fr[i]]=i;
}
while(f[mi]-1){
f[mi]=1;
for(i=ta[mi];i+1;i=nt[i]){
if(CO[to[i]]>CO[mi]+co[i])hin(CO[id[R]=to[i]]=CO[mi]+co[i]);
}
while(f[mi]&&C-1)mi=id[hout()];
}
}
int main(){
int n,m,k,i,a[600010],b[600010],c[600010],e[100010],f[100010],max=0;
scanf("%d %d %d",&n,&m,&k);
for(i=0;i<m;i++)scanf("%d %d %d",&a[i],&b[i],&c[i]);
for(i=0;i<k;i++){
scanf("%d %d",&e[i],&f[i]);
max=MAX(max,f[i]);
}
for(i=0;i<k;i++){
a[i+m]=0;
b[i+m]=e[i];
c[i+m]=max-f[i];
}
for(i=0;i<m+k;i++){
a[i+m+k]=b[i];
b[i+m+k]=a[i];
c[i+m+k]=c[i];
}
dijk(n+1,m+k+m+k,a,b,c,0);
for(i=k=0;i<n;i++){
if(CO[i+1]<max)k++;
}
printf("%d\n",k);
return 0;
}