結果
| 問題 |
No.281 門松と魔法(1)
|
| コンテスト | |
| ユーザー |
nasadigital
|
| 提出日時 | 2015-09-20 05:38:59 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,278 bytes |
| コンパイル時間 | 1,286 ms |
| コンパイル使用メモリ | 158,672 KB |
| 実行使用メモリ | 6,820 KB |
| 最終ジャッジ日時 | 2024-11-06 19:39:28 |
| 合計ジャッジ時間 | 2,904 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 52 WA * 5 |
ソースコード
#include <bits/stdc++.h>
#define FOR(a,b) for(int a=0;a<b;a++)
using namespace std;
typedef long long ll;
int main()
{
int d;
cin>>d;
int ar[3];
FOR(ctr1,3) cin>>ar[ctr1];
int rez1=-1,rez2=-1;
if(ar[1]>1)
{
int l=0,r=0;
int d1=ar[0]-ar[1]+1;
if(d1>0)
{
l+=ceil((double)d1/d);
}
int d2=ar[2]-ar[1]+1;
if(d2>0)
{
r+=ceil((double)d2/d);
}
if(max(ar[0]-l*d,0)==max(ar[2]-r*d,0))
{
if(max(ar[0]-(l+1)*d,0)!=max(ar[2]-r*d,0))
l++;
else
{
l=-1;
}
}
if(l!=-1)
rez1=l+r;
}
if(ar[0]>0 && ar[2]>0)
{
int l=0,m=0;
int dm=ar[1]-min(ar[0]-1,ar[2]-1);
m=ceil((double)dm/d);
if(ar[0]==ar[2]){
l++;
if(max(ar[0]-l*d,0)==max(ar[1]-m*d,0)){
m++;
if (max(ar[0]-l*d,0)==max(ar[1]-m*d,0)){
l=-1;
}
}
}
if(l!=-1)
rez2=l+m;
}
if(rez1==-1)
cout<<rez2<<endl;
else if(rez2==-1)
cout<<rez1<<endl;
else cout<<min(rez1,rez2)<<endl;
return 0;
}
nasadigital