| 提出番号 | 1958 |
|---|---|
| 提出者 | T.M |
| 言語 | C++ |
| 提出日時 | 2018-08-04 14:44:11 |
| 問題名 | (73)観光計画 |
| 結果 | WA |
| 点数 | 0% |
| テストケース | 結果 | 得点 | 実行時間 | メモリ使用量 |
|---|---|---|---|---|
| 1 | AC | 100% | 53ms | 28592KB |
| 2 | AC | 100% | 67ms | 33440KB |
| 3 | AC | 100% | 30ms | 20288KB |
| 4 | AC | 100% | 80ms | 40400KB |
| 5 | AC | 100% | 30ms | 23376KB |
| 6 | AC | 100% | 52ms | 35152KB |
| 7 | AC | 100% | 100ms | 46048KB |
| 8 | AC | 100% | 102ms | 47920KB |
| 9 | AC | 100% | 30ms | 21264KB |
| 10 | AC | 100% | 138ms | 55712KB |
| 11 | AC | 100% | 38ms | 24912KB |
| 12 | AC | 100% | 16ms | 14256KB |
| 13 | AC | 100% | 47ms | 28496KB |
| 14 | AC | 100% | 99ms | 46496KB |
| 15 | AC | 100% | 90ms | 44896KB |
| 16 | AC | 100% | 62ms | 33344KB |
| 17 | AC | 100% | 114ms | 54432KB |
| 18 | AC | 100% | 56ms | 35712KB |
| 19 | AC | 100% | 19ms | 19616KB |
| 20 | AC | 100% | 57ms | 31808KB |
| 21 | AC | 100% | 21ms | 14176KB |
| 22 | AC | 100% | 39ms | 24432KB |
| 23 | AC | 100% | 39ms | 25296KB |
| 24 | AC | 100% | 146ms | 59696KB |
| 25 | AC | 100% | 103ms | 49904KB |
| 26 | AC | 100% | 107ms | 49696KB |
| 27 | AC | 100% | 29ms | 17264KB |
| 28 | WA | 0% | 22ms | 14064KB |
| 29 | AC | 100% | 55ms | 30720KB |
| 30 | WA | 0% | 49ms | 34480KB |
| 31 | AC | 100% | 127ms | 58224KB |
| 32 | AC | 100% | 58ms | 31344KB |
| 33 | AC | 100% | 15ms | 11824KB |
| 34 | AC | 100% | 73ms | 43200KB |
| 35 | AC | 100% | 14ms | 10640KB |
| 36 | AC | 100% | 89ms | 40352KB |
| 37 | AC | 100% | 33ms | 23056KB |
| 38 | AC | 100% | 8ms | 8720KB |
| 39 | AC | 100% | 129ms | 56208KB |
| 40 | AC | 100% | 12ms | 12720KB |
| 41 | AC | 100% | 100ms | 48288KB |
| 42 | AC | 100% | 30ms | 18288KB |
| 43 | AC | 100% | 123ms | 57744KB |
| 44 | AC | 100% | 64ms | 31456KB |
| 45 | AC | 100% | 84ms | 41648KB |
| 46 | AC | 100% | 59ms | 36448KB |
| 47 | AC | 100% | 97ms | 46704KB |
| 48 | AC | 100% | 105ms | 50240KB |
| 49 | AC | 100% | 52ms | 28192KB |
| 50 | AC | 100% | 102ms | 45312KB |
| 51 | AC | 100% | 20ms | 13120KB |
| 52 | AC | 100% | 42ms | 26896KB |
| 53 | AC | 100% | 37ms | 21632KB |
| 54 | AC | 100% | 57ms | 34832KB |
| 55 | AC | 100% | 21ms | 15648KB |
| 56 | AC | 100% | 66ms | 34128KB |
| 57 | AC | 100% | 43ms | 28512KB |
| 58 | AC | 100% | 49ms | 26912KB |
| 59 | AC | 100% | 37ms | 24944KB |
| 60 | AC | 100% | 24ms | 18336KB |
| 61 | AC | 100% | 42ms | 25056KB |
| 62 | AC | 100% | 77ms | 42064KB |
| 63 | WA | 0% | 86ms | 43152KB |
| 64 | AC | 100% | 103ms | 48768KB |
| 65 | AC | 100% | 89ms | 42400KB |
| 66 | AC | 100% | 3ms | 8720KB |
| 67 | WA | 0% | 70ms | 38576KB |
| 68 | WA | 0% | 63ms | 34480KB |
| 69 | AC | 100% | 157ms | 68512KB |
| 70 | AC | 100% | 53ms | 32432KB |
#include<stdio.h>
long long R=1,C=1,H[2000010],N[2000010];
long long MAX(long long a,long long 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;
}