結果
| 問題 |
No.604 誕生日のお小遣い
|
| コンテスト | |
| ユーザー |
extelo
|
| 提出日時 | 2017-12-08 17:55:40 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,152 bytes |
| コンパイル時間 | 687 ms |
| コンパイル使用メモリ | 66,416 KB |
| 最終ジャッジ日時 | 2025-01-05 05:00:26 |
|
ジャッジサーバーID (参考情報) |
judge2 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 12 WA * 9 |
コンパイルメッセージ
main.cpp: In function ‘int main()’:
main.cpp:45:8: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
45 | scanf("%lld %lld %lld", &a_num, &b_get, &c);
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ソースコード
#include <stdio.h>
#include <iostream>
class Yuki
{
public:
long long int old;
long long int sum;
long long int start;
long long int end;
long long int middle;
};
void BinarySearch(Yuki *yuki, long long int a_num, long long int b_get, long long int c)
{
while(1){
long long int n_get = yuki->middle / a_num;
yuki->sum = b_get * n_get + (yuki->middle - n_get);
if(yuki->sum < c){
if(yuki->middle == yuki->start){
yuki->old = yuki->end;
break;
}
yuki->start = yuki->middle;
yuki->middle = (yuki->end + yuki->middle) / 2;
//printf("%lld 1\n", yuki->middle);
} else if(yuki->sum > c){
yuki->end = yuki->middle;
yuki->middle = (yuki->start + yuki->end) / 2;
//printf("%lld 2\n", yuki->middle);
} else {
yuki->old = yuki->middle;
//printf("%lld\n", yuki.old);
break;
}
}
}
int main(void)
{
long long int a_num, b_get, c;
scanf("%lld %lld %lld", &a_num, &b_get, &c);
Yuki yuki;
yuki.sum=0;
yuki.old = 1;
yuki.start = 0;
yuki.end = c;
yuki.middle = c / 2;
BinarySearch(&yuki, a_num, b_get, c);
printf("%lld\n", yuki.old);
return 0;
}
extelo