본문 바로가기
etc

아무도 못 푼 문제 푸는 중_백업

by JJWon 2023. 4. 5.

#include <stdio.h>

int main(){
int n[100000][2]={0}, count=0, retire=0, tot, u, r_count=0;
scanf("%d", &tot);
for(int i=0;i<tot;i++){
scanf("%d", &n[i][0]);
if(n[i][0]!=-1)
n[n[i][0]-1][1]=1;
}
u=tot-1;
for(int i=0;i<tot;i++){
if(n[i][1]==0)
retire++;
if(u>0){
u=n[u][0];
count++;
}
if(u==1)
count++;
u--;
}
for(int u=tot-retire;u>0;u--){
u=n[u][0];
r_count++;
if(u==1){
r_count++;
if(r_count==count)
break;
else{
retire--;
u=tot-retire-1;
}
}
}
printf("%d\n%d", count, tot-retire);
return 0;
}

 

== 생각1: 전체-retire == 시작 작업 수, count(시간) = 최대 높이 수

 

==생각2: 

'etc' 카테고리의 다른 글

블록체인  (0) 2023.05.16