| 提出番号 | 1941 |
|---|---|
| 提出者 | T.M |
| 言語 | C++ |
| 提出日時 | 2018-08-04 14:39:45 |
| 問題名 | (73)観光計画 |
| 結果 | WA |
| 点数 | 0% |
| テストケース | 結果 | 得点 | 実行時間 | メモリ使用量 |
|---|---|---|---|---|
| 1 | AC | 100% | 54ms | 28576KB |
| 2 | AC | 100% | 67ms | 33472KB |
| 3 | AC | 100% | 35ms | 20256KB |
| 4 | AC | 100% | 79ms | 40416KB |
| 5 | AC | 100% | 37ms | 23392KB |
| 6 | AC | 100% | 66ms | 35184KB |
| 7 | AC | 100% | 85ms | 46064KB |
| 8 | AC | 100% | 110ms | 47936KB |
| 9 | AC | 100% | 33ms | 21248KB |
| 10 | AC | 100% | 132ms | 55696KB |
| 11 | AC | 100% | 39ms | 24960KB |
| 12 | AC | 100% | 13ms | 14272KB |
| 13 | AC | 100% | 51ms | 28480KB |
| 14 | AC | 100% | 98ms | 46496KB |
| 15 | AC | 100% | 101ms | 44912KB |
| 16 | AC | 100% | 61ms | 33360KB |
| 17 | AC | 100% | 108ms | 54416KB |
| 18 | AC | 100% | 70ms | 35696KB |
| 19 | AC | 100% | 23ms | 19584KB |
| 20 | AC | 100% | 47ms | 31792KB |
| 21 | AC | 100% | 21ms | 14160KB |
| 22 | AC | 100% | 46ms | 24448KB |
| 23 | AC | 100% | 48ms | 25280KB |
| 24 | AC | 100% | 143ms | 59712KB |
| 25 | AC | 100% | 104ms | 49920KB |
| 26 | AC | 100% | 115ms | 49680KB |
| 27 | AC | 100% | 26ms | 17216KB |
| 28 | WA | 0% | 22ms | 14032KB |
| 29 | AC | 100% | 59ms | 30736KB |
| 30 | WA | 0% | 61ms | 34480KB |
| 31 | AC | 100% | 128ms | 58240KB |
| 32 | AC | 100% | 46ms | 31328KB |
| 33 | AC | 100% | 16ms | 11824KB |
| 34 | AC | 100% | 88ms | 43152KB |
| 35 | AC | 100% | 14ms | 10640KB |
| 36 | AC | 100% | 89ms | 40352KB |
| 37 | AC | 100% | 42ms | 23088KB |
| 38 | AC | 100% | 10ms | 7968KB |
| 39 | AC | 100% | 129ms | 56192KB |
| 40 | AC | 100% | 12ms | 12672KB |
| 41 | AC | 100% | 87ms | 48288KB |
| 42 | AC | 100% | 30ms | 18288KB |
| 43 | AC | 100% | 138ms | 57744KB |
| 44 | AC | 100% | 53ms | 31456KB |
| 45 | AC | 100% | 85ms | 41696KB |
| 46 | AC | 100% | 71ms | 36432KB |
| 47 | AC | 100% | 101ms | 46704KB |
| 48 | AC | 100% | 115ms | 50256KB |
| 49 | AC | 100% | 52ms | 28208KB |
| 50 | AC | 100% | 110ms | 45312KB |
| 51 | AC | 100% | 20ms | 13088KB |
| 52 | AC | 100% | 53ms | 26896KB |
| 53 | AC | 100% | 35ms | 21648KB |
| 54 | AC | 100% | 62ms | 34848KB |
| 55 | AC | 100% | 20ms | 15664KB |
| 56 | AC | 100% | 62ms | 34192KB |
| 57 | AC | 100% | 34ms | 28480KB |
| 58 | AC | 100% | 39ms | 26944KB |
| 59 | AC | 100% | 35ms | 24976KB |
| 60 | AC | 100% | 29ms | 18288KB |
| 61 | AC | 100% | 46ms | 25072KB |
| 62 | AC | 100% | 83ms | 42080KB |
| 63 | WA | 0% | 90ms | 43136KB |
| 64 | AC | 100% | 96ms | 48768KB |
| 65 | AC | 100% | 97ms | 42400KB |
| 66 | AC | 100% | 3ms | 8048KB |
| 67 | WA | 0% | 71ms | 38592KB |
| 68 | WA | 0% | 65ms | 34480KB |
| 69 | AC | 100% | 158ms | 68480KB |
| 70 | AC | 100% | 54ms | 32480KB |
#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]=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;
}