1259 분 시간 시스템

2796 단어 c테스트

묘사 하 다.
시간 대별 시스템 에서 스케줄 링 프로 세 스 는 CPU 를 가장 골 치 아 프 게 하 는 문제 이다.현재 실행 을 기다 리 는 프로 세 스 가 n 개 있 습 니 다. 모든 프로 세 스 의 실행 시간 은 Ti 입 니 다. CPU 가 프로 세 스 의 실행 순 서 를 결정 하도록 도와 주 십시오. 이 프로 세 스 의 최 단 대기 시간 을 최소 화 하 십시오.(이 시스템 의 CPU 스케줄 링 은 스케줄 링 을 중단 할 수 없습니다. 즉, 프로 세 스 를 실행 하기 로 결정 하면 프로 세 스 를 완료 해 야 합 니 다.)평균 대기 시간: 준비 대기 열 에서 기다 리 는 시간 과 프로 세 스 총 수 를 나 눕 니 다.예 를 들 어 세 개의 프로 세 스 가 있 는데 A, B, C 는 각각 2ms, 3ms 와 1ms 가 필요 하 다.ABC 순서에 따라 스케줄 을 잡 으 면 A 는 0ms 를 기 다 려 야 하고 B 는 2ms 를 기 다 려 야 하 며 C 는 5ms 를 기 다 려 야 한다.이때 의 평균 대기 시간 은 (0 + 2 + 5) / 3 이다.BAC 순서에 따라 스케줄 을 잡 으 면 B 는 0ms 를 기 다 려 야 하고 A 는 3ms 를 기 다 려 야 하 며 C 는 5ms 를 기 다 려 야 한다. 이때 의 평균 대기 시간 은 (0 + 3 + 5) / 3 이다.
입력
2n + 1 줄 이 있 고 첫 번 째 행 위 는 int 값 이 며 아래 n 조 테스트 데이터 가 있 음 을 나타 낸다.다음은 모두 2n 줄 이 있 습 니 다. 각 조 의 테스트 배열 은 두 줄 이 있 습 니 다. 첫 번 째 행위 m (m < 100) 는 모두 m 개의 예약 이 필요 한 프로 세 스 가 있 음 을 나타 냅 니 다.두 번 째 줄 은 m 개의 정수 가 있 는데 각각 프로 세 스 가 완성 하 는 데 필요 한 밀리초 수 [tex] T 를 나타 낸다.1[/tex],[tex]T_2[/tex],……,[tex]T_m[/tex] ([tex]T_i[/tex]<1000)。
출력
각 그룹의 테스트 데이터 출력 두 줄: 첫 번 째 행 위 는 하나의 스케줄 링 순서, 즉 1 에서 m 까지 의 배열 (두 프로 세 스 의 완성 시간 이 같 으 면 그들의 번호 에 따라 작은 순서 로 출력).두 번 째 행 위 는 이러한 스케줄 링 방안 에서 의 평균 대기 시간 (출력 결 과 는 소수점 뒤의 두 자리 까지 정확 하 다).
샘플 입력
1
10
56 12 1 99 1000 234 33 55 99 812

샘플 출력
3 2 7 8 1 4 9 6 10 5
291.90

 
 
이 문 제 는 명백 한 욕심 이다.
#include<stdio.h>
main()
{ int i,t,j,k;
int a[101];
int b[101];
int c[101];
int temp;
int te,number;
int temper;
double sum;
scanf("%d",&number);
for (te=1;te<=number;te++)
{  scanf("%d",&temper);


for(i=0;i<101;i++)

a[i]=0;
k=0;
sum=0;

for(i=0;i<temper;i++)

{ 
	scanf("%d",&a[i]);
	b[k++]=a[i];
	
	   
}




for(i=0;i<temper;i++)   

for(j=i+1;j<temper;j++)   

{       
		  if(a[i]>a[j])   
			  
		  {   
			  temp=a[j];
			  
			  a[j]=a[i];
			  
			  a[i]=temp;   
			  
			  
		  }   
		  
}
for(k=0;k<temper;k++)
{
	for(j=0;j<temper;j++)
		if(b[j]==a[k])
		{
			c[k]=j+1;
			b[j]=-1;
			j=0;
			
			
			break;
			
			
			
			
			
		}
}
for(i=0;i<temper-1;i++)
printf("%d ",c[i]);
printf("%d
",c[temper-1]); for(j=0;j<temper-1;j++) { for(i=0;i<=j;i++) sum+=a[i]; } printf("%.2lf
",sum/temper); } }

좋은 웹페이지 즐겨찾기