結果

問題 No.281 門松と魔法(1)
ユーザー sntea
提出日時 2015-09-20 04:32:22
言語 C++11(廃止可能性あり)
(gcc 13.3.0)
結果
WA  
実行時間 -
コード長 1,223 bytes
コンパイル時間 739 ms
コンパイル使用メモリ 79,880 KB
実行使用メモリ 6,820 KB
最終ジャッジ日時 2024-11-06 19:39:25
合計ジャッジ時間 3,721 ms
ジャッジサーバーID
(参考情報)
judge2 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 29 WA * 18 RE * 10
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <iostream>
#include <cmath>
#include <climits>
#include <string>
#include <vector>
#include <queue>
#include <stack>
#include <functional>
#include <algorithm>
#include <sstream>
#include <map>
#include <set>
#include <utility>

#define endl '\n'
#define ALL(a)  (a).begin(),(a).end()
#define SZ(a) int((a).size())
#define FOR(i,a,b) for(int i=(a);i<(b);++i)
#define RFOR(i,a,b) for (int i=(b)-1;i>=(a);i--)
#define REP(i,n)  FOR(i,0,n)
#define RREP(i,n) for (int i=(n)-1;i>=0;i--)
#define DEBUG(x) cout<<#x<<": "<<x<<endl

using namespace std;

typedef pair<int,int> P;
typedef long long int LL;

int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	int d,H[3];
	cin>>d;
	REP(i,3)	cin>>H[i];
	int ans=INT_MAX;
	int mi=min(H[0],H[2]);
	if(H[1]<mi){
		ans=0;
	}else{
		int k=(H[1]-mi)/d+1;
		if(H[1]>=k*d){
			ans=k;
		}
	}
	int tm=0;
	if(H[0]>=H[1]){
		int k=(H[0]-H[1])/d+1;
		if(H[0]-k*d>=0){
			tm+=k;
		}else{
			tm=INT_MIN;
		}
	}
	if(H[2]>=H[1]){
		int k=(H[2]-H[1])/d+1;
		if(H[2]-k*d>=0){
			tm+=k;
		}else{
			tm=INT_MIN;
		}
	}
	if(tm<0&&ans==INT_MAX){
		cout<<-1<<endl;
	}else if(tm<0){
		cout<<ans<<endl;
	}else if(ans==INT_MAX){
		cout<<tm<<endl;
	}else{
		cout<<min(ans,tm)<<endl;
	}
	return 0;
}
0