[ACM]hdu 2149 Public Sale(바 시 보 이)

3247 단어 바둑 을 두다
Public Sale
Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3396    Accepted Submission(s): 2095
Problem Description
 
싫 지만 현실 은 현실 이다.릴 은 장학금 을 받 지 못 했 기 때문에 퇴학 의 운명 을 피 한 적 이 없다.지금 그 를 기다 리 는 것 은 팜 존 같은 농토 생활 이다.
농 사 를 지 으 려 면 밭 이 있어 야 한다.릴 은 거리 에서 새로운 경매 가 열 리 고 있다 고 들 었 다.경매 물품 은 바로 20 묘의 밭 이 라 고 한다.그래서 릴 은 저축 한 돈 을 모두 가지 고 경매 에 뛰 어 들 었 다.
그 러 다 보 니 전체 경매 에는 릴 과 그의 라이 벌 유 이 밖 에 없 었 다.
알 아 본 결과 Lele 은 이 경매 의 규칙 이 다음 과 같다 는 것 을 알 게 되 었 다.처음에 최저 가 는 0 이 었 고 두 사람 은 돌아 가면 서 가격 을 올 리 기 시 작 했 지만 매번 가격 을 올 리 는 폭 은 1~N 사이 에 있어 야 한다.가격 이 밭 의 원가 가격 M 보다 크 거나 같 을 때 주최 측은 이 밭 을 이번에 부 른 사람 에 게 팔 았 다.
릴 과 유 이 는 시험 은 안 되 지만 경매 에 정통 하고 두 사람 모두 이 밭 을 갖 고 싶 어 한다.그래서 그들 은 매번 자신 에 게 가장 유리 한 방식 으로 가격 을 올 린 다.
Lele 사전 순서 가 Yueyue 보다 앞 섰 기 때문에 매번 Lele 에서 먼저 가격 을 올 리 기 시 작 했 습 니 다.말씀 좀 여 쭙 겠 습 니 다.처음 가격 을 올 렸 을 때...
Lele 은 얼마나 내야 자신 이 이 땅 을 살 수 있 습 니까?
 
 
Input
 
이 문 제 는 여러 그룹의 테스트 를 포함 하고 있 습 니 다.파일 이 끝 날 때 까지 처리 하 십시오(EOF).각 조 의 테스트 가 한 줄 을 차지한다.
각 조 의 테스트 는 두 개의 정수 M 과 N 을 포함한다.
 
 
Output
 
각 그룹의 데이터 에 대해 한 줄 에서 증가 하 는 순서에 따라 Lele 이 처음으로 추가 할 수 있 는 가격 을 출력 합 니 다.두 데이터 사 이 를 빈 칸 으로 나누다.
만약 릴 이 처음으로 아무리 값 을 내 도 이 토 지 를 살 수 없다 면,'none'을 수출 할 것 이다.
 
 
Sample Input
 

   
   
   
   
4 2 3 2 3 5

 
 
Sample Output
 
1
none
3 4 5
 

원 가 는 m 이 고 증 가 는 최대 n 이 며 m<=n 일 때 먼저 한 번 만 들 면 이 길 수 있 습 니 다.m>n 시,바 시 보 혁 m=(n+1)*r+s,m%(n+1)==0 시,선 수 는 반드시 진다.이런 상황 에서 먼저 이 기 려 면 먼저 s 개 를 가 져 가 만족(m-s)%(n+1)==0 을 만족 시 켜 야 하기 때문에 매 거 진 s 만 있 으 면 된다.이 문 제 는 격식 에 주의 하여 빈 칸 이 많 으 면 안 된다.많은 코드 는 완전히 빈 칸 의 출력 을 제어 하기 위 한 것 이다.
코드:
#include <iostream>
using namespace std;

int m,n;//m   ,n      

int main()
{
    while(cin>>m>>n)
    {
        if(m<=n)//        ,     
        {
            cout<<m;
            for(int i=m+1;i<=n;i++)
                cout<<" "<<i;
            cout<<endl;
            continue;
        }
        if(m%(n+1)==0)//    
        {
            cout<<"none"<<endl;
        }
        else
        {
            int flag=0;//          ,  。。。
            for(int i=1;i<=n;i++)//        ,    n,  (m-i)%(n+1)==0     
            {
                if((m-i)%(n+1)==0)
                    {
                        if(!flag)
                            {
                                cout<<i;
                                flag=1;
                            }
                        else
                            cout<<" "<<i;
                    }
            }
            cout<<endl;
        }
    }
    return 0;
}

좋은 웹페이지 즐겨찾기