ccf csp - 201903 - 4 메시지 전달 인터페이스

1719 단어 ccf
제목
  • 사고: 모든 프로 세 스 의 첫 번 째 명령 만 보면 잠 겨 있 는 지 여 부 를 판단 할 수 있다.프로 세 스 의 첫 번 째 명령 어 를 맞 추 는 데 성공 하면 이 두 명령 어 를 실행 합 니 다.반면 모든 프로 세 스 의 첫 번 째 명령 을 맞 추 는 데 실 패 했 으 면 잠 겨 있 습 니 다.그리고 매번 그렇게 판단 하면 돼.
  • 전체 구 조 는 다음 과 같다
  • flag=1;
    while(flag){
    	flag = 0;
    	if(     ) flag=1;
    }
    output(flag);
    
  • 데이터 구조 에 있어 저 는 하나의 대기 열 배열 로 n 개의 프로 세 스 를 모 의 했 습 니 다. 모든 프로 세 스 는 하나의 대기 열
  • 에 대응 합 니 다.
  • 내 가 만난 구덩이:
  • 입력 에 있어 fgets 는 읽 을 수 있 습 니 다. 즉, 줄 바 꿈 문자 입 니 다. 저 는 모든 줄 의 끝 이 반드시 90 점 이 라 고 생각 했 습 니 다. 여러 번 테스트 한 후에 (마음 이 힘 들 었 습 니 다) 결 과 는 마지막 줄 이 없 기 때 문 이 라 고 생각 했 습 니 다. 바로 마지막 줄 의 데이터 에 줄 바 꿈 문자 가 없 을 것 입 니 다.처리 하면 만점 이 야.

  • #include 
    #include 
    #include 
    #include 
    #include 
    
    using namespace std;
    const int MAX_N = 10000 + 100;
    const int MAX_LINE = 80;//(1+5+1)*8     ,       ?     1    100 
    
    int T,n;
    
    struct Cmd{
    	int op,to;
    	public:
    	Cmd(char* str){
    		if(str[0]=='R') op = 0;
    		else		op = 1;
    		to = atoi(str+1);
    //		to = 0;
    //		for(int i=1; str[i]; i++){
    //			to *= 10;
    //			to += str[i]-'0';
    //		}
    //		to = to%n;
    	}
    };
    
    queue q[MAX_N];
    char str[MAX_LINE]; 
    char temp[100]; 
    
    int main(int argc, char* argv[])
    {
    	if(argc==2){
    		char* filename = argv[1];
    		freopen(filename, "r", stdin);
    	}
    
    	scanf("%d%d", &T,&n);
    	getchar();
    	while(T--){
    		for(int i=0; i

    좋은 웹페이지 즐겨찾기