<div><br>#include <stdio.h><br>#include <stdlib.h><br>#define SWAP(a,b,c) ((c)=(b), (b)=(a), (a)=(c))</div> <div>struct process<br>{<br> int p_num;<br> int a_time;<br> int b_time;<br>}p[50];</div> <div>int main(void)<br>{<br> FILE *in,*out;<br> in=fopen("fcfs.inp", "r");<br> out=fopen("fcfs.out", "w");<br> <br> int p_c=0;<br> <br> int i,j,temp=0,result=0, temp1=0;<br> int a;<br> if(in==NULL)<br> {<br> printf("file open error!\n");<br> exit(1);<br> }<br> <br> fscanf(in,"%d",&p_c);</div> <div> if(p_c>50)<br> {<br> fprintf(out,"허용 범위를 넘었습니다.\n");<br> return 0;<br> }<br> <br> for(int i=0; i<p_c; i++)<br> { <br> fscanf(in,"%d",&p[i].p_num);<br> fscanf(in,"%d",&p[i].a_time);<br> fscanf(in,"%d",&p[i].b_time);<br> }</div> <div> // arrival 순으로 정렬<br> for(i=p_c-1; i>0; i--)<br> {<br> for(j=0; j<i; j++)<br> {<br> if(p[j].a_time > p[j+1].a_time ){<br> SWAP(p[j].a_time, p[j+1].a_time, temp);<br> SWAP(p[j].b_time, p[j+1].b_time, temp);<br> SWAP(p[j].p_num, p[j+1].p_num, temp);<br> }<br> else if(p[j].a_time == p[j+1].a_time && p[j].p_num > p[j+1].p_num){<br> SWAP(p[j].a_time, p[j+1].a_time, temp);<br> SWAP(p[j].b_time, p[j+1].b_time, temp);<br> SWAP(p[j].p_num, p[j+1].p_num, temp);<br> }<br> }<br> }<br> <br> for(a=0; a<p_c; a++){<br> if(temp1 < p[a].a_time)<br> {<br> while(temp1!=p[a].a_time)<br> temp1+=1;<br> }<br> result += temp1 - p[a].a_time;<br> temp1+=p[a].b_time ;<br> <br> <br> <br> <br> }<br> fprintf(out,"%d",result);</div> <div> fclose(in);<br> fclose(out);<br> <br> return 0;<br> <br>}</div> <div> </div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.