[伯俊/BOJ]2891カヌーと強風[Silver 5]

1598 ワード

  • カヤックと強風
  • 質問元:https://www.acmicpc.net/problem/2891
    code
    #include <stdio.h>
    int main()
    {
    	//N = 팀의수 S = 카약이 손상된 팀의 수 R = 카약을 하나 더 가져온 팀의 수
    	int N, S, R, i, j, cnt = 0;
    	int broken_kayak[10] = { 0 }, more_kayak[10] = { 0 };
    	scanf("%d %d %d", &N, &S, &R);
    	for (i = 0; i < S; i++)
    		scanf("%d", &broken_kayak[i]);
    	for (i = 0; i < R; i++)
    		scanf("%d", &more_kayak[i]);
    //조건
    	for (i = 0; i < S; i++)
    		for (j = 0; j < R; j++)
    			if (broken_kayak[i] == more_kayak[j])
    			{
    				broken_kayak[i] = -1;
    				more_kayak[j] = -1;
    			}
    	for (i = 0; i < S; i++)
    	{
    		for (j = 0; j < R; j++)
    		{
    			if (broken_kayak[i] == more_kayak[j] - 1 || broken_kayak[i] == more_kayak[j] + 1)
    			{
    				broken_kayak[i] = -1;
    				more_kayak[j] = -1;
    			}
    		}
    		if (broken_kayak[i] != -1)
    			cnt++;
    	}
    	printf("%d", cnt);
    	return 0;
    }
    何度も繰り返して、SとRを混同しないで、繰り返してやりましょう.
    コードも比較的簡単で、N、R、カヌーが損傷したチームは、複数のチームがこのように入力を受けています.
    カヌーが損傷を受けたチームは、余分なチームが二重の複文で回転し、余分なチーム+1の範囲内に損傷を受けたチームがあれば、重ならず、-1を区別しやすい.0なら1番チームと-1の範囲内なので-1です
    そして--1でなければ、cnt++でチームの数を計算します.
    ここからもう一つカヤックを取ったチームのカヤックが損傷した場合、余分なカヤックで試合に参加し、このカヤックは他のチームに貸すことができません.李肇建に相応の条件を設定しなければならない.
    重複文でダメージを受けたチーム==複数の人がいるチームであれば、2人を-1にして、他のチームとパートナーができないようにすればいいのです.私は最初は女の人がいる列に-1しか並んでいなかったので、ずっと間違っていました.