結果
| 問題 |
No.180 美しいWhitespace (2)
|
| コンテスト | |
| ユーザー |
bal4u
|
| 提出日時 | 2019-08-10 16:07:27 |
| 言語 | C (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,045 bytes |
| コンパイル時間 | 376 ms |
| コンパイル使用メモリ | 29,952 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-07-19 17:08:13 |
| 合計ジャッジ時間 | 1,522 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 25 WA * 6 |
コンパイルメッセージ
main.c: In function 'in':
main.c:9:14: warning: implicit declaration of function 'getchar_unlocked' [-Wimplicit-function-declaration]
9 | #define gc() getchar_unlocked()
| ^~~~~~~~~~~~~~~~
main.c:15:24: note: in expansion of macro 'gc'
15 | int n = 0, c = gc();
| ^~
ソースコード
// yukicoder 180 美しいWhitespace (2)
// 2019.8.10 bal4u
#include <stdio.h>
typedef long long ll;
#if 1
#define gc() getchar_unlocked()
#else
#define gc() getchar()
#endif
int in() { // 非負整数の入力
int n = 0, c = gc();
do n = 10 * n + (c & 0xf); while ((c = gc()) >= '0');
return n;
}
int a[1004], b[1004], N;
ll f(int x) {
int i; ll mi, ma, t;
mi = ma = a[0] + (ll)b[0]*x;
for (i = 1; i < N; i++) {
t = a[i] + (ll)b[i]*x;
if (t < mi) mi = t;
else if (t > ma) ma = t;
}
return ma-mi;
}
int search(int r) {
int l = 0, m1, m2, pl, pr;
ll f1, f2;
pl = -1;
while (l != pl || r != pr) {
pl = l, pr = r;
m1 = (2*(ll)l + r)/3, m2 = (l+2*(ll)r)/3;
f1 = f(m1); if (f1 == 0) return m1;
f2 = f(m2); if (f2 == 0) return m2;
if (f1 <= f2) r = m2; else l = m1;
}
return f1 <= f2? m1: m2;
}
int main()
{
int i, ma;
N = in(), ma = 0;
for (i = 0; i < N; i++) {
a[i] = in(), b[i] = in();
if (a[i] > ma) ma = a[i];
}
if (f(1) == 0) puts("1");
else printf("%d\n", search(ma+1));
return 0;
}
bal4u