HDU 4505 작은 Q 시리즈 - 엘리베이터 안의 사랑

2721 단어
작은 Q 시리즈 이야기 - 엘리베이터 안의 사랑
                                                                                  Time Limit: 300/100 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)
Problem Description
세심 한 동료 들 은 작은 Q 가 최근 에 엘리베이터 를 타고 오 르 내 리 는 것 을 좋아 하 는 것 을 발견 했다. 그 이 유 는 작은 Q 만 이 알 고 있 을 것 이다. 엘리베이터 에서 그의 마음 속 의 여신 HR 를 자주 만 날 수 있다 는 것 이다.
엘리베이터 는 사실 애매 한 곳 입 니 다. 엘리베이터 안에서 만 큐 가 여신 에 게 이렇게 가까이 다가 갈 수 있 는 용기 가 있 습 니 다. 조금 불편 하지만 횟수 가 많아 졌 습 니 다. 여신 도 큐 의 존재 에 익숙 해 졌 습 니 다. 심지어 한 마디 도 하지 않 는 것 처럼 자신 도 어 울 리 지 않 습 니 다.그러나 그들의 대 화 는 오늘 날씨 가 좋 거나 당신 이 먹 었 습 니까?  그래서 작은 Q 는 여신 과 함께 엘리베이터 에 표 시 된 층 수 를 지 켜 보 았 다. 그리고 그 는 엘리베이터 가 위로 한 층 씩 운행 할 때마다 6 초, 아래로 한 층 씩 운행 하 는 데 4 초, 문 을 열 때마다 5 초 (사람 이 도착 하면 문 을 연다), 그리고 다음 사람 은 1 초 를 더 해 야 한 다 는 것 을 알 게 되 었 다.
특히 엘리베이터 는 처음에는 0 층 이 었 고 마지막 에는 0 층 으로 다시 돌아 가 야 임무 가 끝났다 고 지적 했다.만약 에 처음에 엘리베이터 안의 모든 사람 이 가 야 할 층 을 알 았 다 고 가정 하면 이번 임 무 를 완성 하 는 데 필요 한 총 시간 을 계산 할 수 있 습 니까?
이것 은 매우 간단 한 문제 입 니 다. 작은 Q 는 이미 빠 른 마음으로 결 과 를 계산 하 는 경지 까지 수련 되 었 습 니 다. 지금 당신 이 프로 그래 밍 을 해 보 세 요!
 
Input
입력 은 먼저 정수 C 를 포함 하고 C 조 테스트 사례 가 있 음 을 표시 합 니 다.
그 다음 에 C 줄 마다 한 조 의 데 이 터 를 포함 하고 각 조 의 데 이 터 는 먼저 정수 N 으로 이번 엘리베이터 를 타 는 사람의 수 를 나타 내 고 그 다음 에 N 개의 정수 Ai 로 여러분 이 가 야 할 층 을 나 타 냅 니 다.
[Technical Specification]
C<=100
N<=15
Ai<=100
 
Output
한 번 의 작업 을 수행 하 는 데 필요 한 시간 을 계산 하고 출력 하 십시오. 각 그룹의 데이터 출력 은 한 줄 을 차지 합 니 다.
 
Sample Input

   
   
   
   
2 4 2 4 3 2 3 10 10 10

 
Sample Output

   
   
   
   
59 108

 
          이전에 도 이 문 제 를 본 적 이 있 지만 풀 지 않 았 다.오늘 또 만 나 서 AC 하기 로 했 어 요.자세히 분석 한 결과 이 문 제 는 매우 간단 하 다. cnct 배열 로 각 층 아래 몇 명 을 기록 하면 각 층 에서 소모 하 는 시간 을 계산 할 수 있 고 마지막 으로 엘리베이터 가 올 라 가 고 내 려 오 는 시간 을 더 하면 된다.
#include<stdio.h>
#include<string.h>
int main()
{
    int a, i, c, n, cnt[105];
    scanf("%d",&c);
    while(c--)
    {
        scanf("%d",&n);
        memset(cnt, 0, sizeof(cnt));
        int Max = 0;
        for(i = 0; i < n; i++)
        {
            scanf("%d",&a);
            cnt[a]++;
            if(a > Max)
                Max = a;
        }
        int ans = Max * 10;  //       ,        
        for(i = 1; i <= Max; i++)
        {
            if(cnt[i])
                ans += 5 + cnt[i]; //         
        }
        printf("%d
",ans); } return 0; }

좋은 웹페이지 즐겨찾기