SDNU 1206.개미 감기[코드가 이렇게 간단해, 사고연습] [7월 29]
Description
길이 100센티미터의 가늘고 곧은 막대기에 n마리의 개미가 있다.그것들의 머리는 어떤 것은 왼쪽을 향하고 어떤 것은 오른쪽을 향한다.개미 한 마리는 초속 1센티미터로 장대를 따라 앞으로 기어갈 수밖에 없다.개미 두 마리가 마주치면 동시에 고개를 돌려 반대 방향으로 기어간다.이 개미 중 한 마리가 감기에 걸렸다.그리고 다른 개미와 마주칠 때 감기를 부딪힌 개미에게 전염시킨다.모든 개미가 장대에서 기어올랐을 때 얼마나 많은 개미가 감기에 걸렸는지 계산해 보세요.
Input
첫 번째 행에는 개미의 총 수를 나타내는 정수 n(1 < n < 50)을 입력합니다.
이어진 행은 n개의 공백으로 나누어진 정수 Xi(-100 < Xi < 100)로, Xi의 절대값은 개미가 막대기의 왼쪽 끝을 떠나는 거리를 나타낸다.양수 값은 머리가 오른쪽을 향하고 음수 값은 머리가 왼쪽을 향하는 것을 의미하며 데이터에 0이 나타나지 않고 두 마리의 개미가 같은 위치를 차지하지 않는다.그중 첫 번째 데이터는 개미가 감기에 걸렸다는 것을 대표한다.
Output
마지막 감기 개미의 수를 나타내는 정수 1개를 출력해 달라고 한다.
Sample Input
3
5 -2 8
Sample Output
1
생각이 없는 거 아니야?처음 이 문제를 푸니 확실히 생각이 없다.그러나 유여가의 훈련 지침은 개미에서 두 개미가 머리를 맞대고 방향을 바꾸어 계속 기어오르는 것이 멀리서 보면 서로 지나가는 것 같다고 언급했다.이렇게 생각하면 간단하다.감기에 걸린 개미가 왼쪽에서 얼마나 오른쪽으로 기어가는지, 오른쪽에서 얼마나 왼쪽으로 기어가는지 판단하는 것을 더하면 답이다.그 자체도 감기에 걸린 개미라는 것을 절대 잊지 마라.코드는 다음과 같습니다.
#include<cstdio>
int main(){
int n,x,f[110]={0},t,sum=1;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&x);
if(i==0) x>0?t=x:t=-x;
x>0?f[x]=1:f[-x]=-1;
}
for(int i=0;i<t;i++)
if(f[i]==1)
sum++;
for(int i=t+1;i<110;i++)
if(f[i]==-1)
sum++;
printf("%d
",sum);
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
vue 단일 페이지에 여러 개의 echarts 도표가 있을 때의 공용 코드 쓰기html에서: 데이터 처리는 말할 필요가 없다.응, 직접 그림을 그려: 공통 섹션: 이 페이지를 떠날 때 파괴: 추가 정보: Vue + Echarts 차트 표시 및 동적 렌더링 준비 작업 echarts 의존 설치 n...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.