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