| 提出番号 | 1930 |
|---|---|
| 提出者 | T.M |
| 言語 | C++ |
| 提出日時 | 2018-08-04 14:37:33 |
| 問題名 | (73)観光計画 |
| 結果 | WA |
| 点数 | 0% |
| テストケース | 結果 | 得点 | 実行時間 | メモリ使用量 |
|---|---|---|---|---|
| 1 | AC | 100% | 48ms | 21568KB |
| 2 | AC | 100% | 55ms | 24768KB |
| 3 | AC | 100% | 28ms | 14512KB |
| 4 | AC | 100% | 74ms | 30736KB |
| 5 | AC | 100% | 29ms | 18464KB |
| 6 | AC | 100% | 60ms | 27120KB |
| 7 | AC | 100% | 87ms | 32976KB |
| 8 | AC | 100% | 89ms | 33760KB |
| 9 | AC | 100% | 25ms | 17264KB |
| 10 | AC | 100% | 101ms | 40464KB |
| 11 | AC | 100% | 40ms | 18640KB |
| 12 | AC | 100% | 14ms | 10208KB |
| 13 | AC | 100% | 40ms | 19744KB |
| 14 | AC | 100% | 88ms | 34480KB |
| 15 | AC | 100% | 80ms | 32096KB |
| 16 | AC | 100% | 45ms | 25872KB |
| 17 | AC | 100% | 102ms | 38912KB |
| 18 | AC | 100% | 62ms | 26448KB |
| 19 | AC | 100% | 19ms | 13696KB |
| 20 | AC | 100% | 47ms | 22304KB |
| 21 | AC | 100% | 18ms | 11744KB |
| 22 | AC | 100% | 33ms | 17712KB |
| 23 | AC | 100% | 34ms | 18192KB |
| 24 | AC | 100% | 139ms | 42784KB |
| 25 | AC | 100% | 92ms | 36112KB |
| 26 | AC | 100% | 95ms | 36448KB |
| 27 | AC | 100% | 23ms | 12576KB |
| 28 | WA | 0% | 19ms | 10864KB |
| 29 | AC | 100% | 53ms | 23360KB |
| 30 | WA | 0% | 43ms | 24000KB |
| 31 | AC | 100% | 110ms | 42512KB |
| 32 | AC | 100% | 49ms | 24176KB |
| 33 | AC | 100% | 13ms | 8944KB |
| 34 | AC | 100% | 80ms | 32416KB |
| 35 | AC | 100% | 13ms | 8144KB |
| 36 | AC | 100% | 82ms | 28448KB |
| 37 | AC | 100% | 37ms | 17184KB |
| 38 | AC | 100% | 8ms | 8064KB |
| 39 | AC | 100% | 97ms | 40064KB |
| 40 | AC | 100% | 10ms | 9120KB |
| 41 | AC | 100% | 91ms | 36144KB |
| 42 | AC | 100% | 26ms | 13584KB |
| 43 | AC | 100% | 113ms | 42704KB |
| 44 | AC | 100% | 46ms | 23184KB |
| 45 | AC | 100% | 72ms | 30064KB |
| 46 | AC | 100% | 70ms | 27280KB |
| 47 | AC | 100% | 91ms | 34688KB |
| 48 | AC | 100% | 97ms | 37744KB |
| 49 | AC | 100% | 46ms | 21712KB |
| 50 | AC | 100% | 89ms | 32416KB |
| 51 | AC | 100% | 15ms | 10320KB |
| 52 | AC | 100% | 49ms | 20128KB |
| 53 | AC | 100% | 31ms | 16016KB |
| 54 | AC | 100% | 53ms | 27264KB |
| 55 | AC | 100% | 18ms | 11296KB |
| 56 | AC | 100% | 56ms | 23776KB |
| 57 | AC | 100% | 37ms | 19504KB |
| 58 | AC | 100% | 43ms | 19664KB |
| 59 | AC | 100% | 30ms | 17568KB |
| 60 | AC | 100% | 27ms | 13184KB |
| 61 | AC | 100% | 33ms | 18368KB |
| 62 | AC | 100% | 76ms | 32000KB |
| 63 | WA | 0% | 74ms | 30112KB |
| 64 | AC | 100% | 89ms | 35984KB |
| 65 | AC | 100% | 83ms | 31360KB |
| 66 | AC | 100% | 3ms | 7632KB |
| 67 | WA | 0% | 58ms | 27232KB |
| 68 | WA | 0% | 54ms | 23728KB |
| 69 | AC | 100% | 151ms | 49488KB |
| 70 | AC | 100% | 63ms | 24224KB |
#include<stdio.h>
int R=1,C=1,H[2000010],N[2000010];
int 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(int 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;
}
int CO[100010];
int 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]=1000000000;
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;
}