ZONe 에너지 프로그래밍 콘테스트 “HELLO SPACE” 비망록

7487 단어 C++AtCoder
결과
C와 D가 난이도 반대라는 사양.
어째서 이런 짓을 했다…
A: AC
B:AC 조금 생각했다
C: 시간 만료
D: 시간 만료
E: 미
F: 미

A - UFO 습격
어떤 문자열 중에 "ZONe"라는 문자열은 몇 개인가?
문자열 12개 정도이므로, 1개씩 처음부터 세어, 있으면 count++라고 느끼게 했다.
#include <bits/stdc++.h>
#include <math.h>
using namespace std;

int main() {
    string S;
    cin>>S;
    int count=0;
    for(int i=0;i<S.size()-3;i++){
        if(S.at(i)=='Z'){
            if(S.at(i+1)=='O'){
                if(S.at(i+2)=='N'){
                    if(S.at(i+3)=='e'){
                        count++;
                    }

                }
            }
        }
    }
    cout<<count<<endl;
  }


B - 우호의 표시


방해받는 높이가 어딘가?
타워의 높이와 UFO 위치를 연결하는 직선을 그려 Y축 절편을 산출.
최소가 되는 Y축 절편이 타워의 가장 낮은 저격 포인트 대답.
y=ax+b의 생각으로 OK.
#include <bits/stdc++.h>
#include <math.h>
using namespace std;

int main() {
    double N,D,H;
    double d[110];
    double h[110];
    double ans;
    double ansmax=0;
    cin>>N>>D>>H;
    for(int i=0;i<N;i++){
        cin>>d[i]>>h[i];
        if(h[i]>((H/D)*d[i])){
            ans=((D*h[i])-(H*d[i]))/(D-d[i]);
            if(ans>ansmax){
            ansmax=ans;
            }
        }
    }
    if(ans==0){
        cout<<"0.0"<<endl;
    }
    else{
    cout<<ansmax<<endl;
    }
  }

좋은 웹페이지 즐겨찾기