結果
| 問題 |
No.853 河原の石
|
| コンテスト | |
| ユーザー |
LayCurse
|
| 提出日時 | 2019-07-26 23:02:10 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 3,278 bytes |
| コンパイル時間 | 1,990 ms |
| コンパイル使用メモリ | 192,496 KB |
| 最終ジャッジ日時 | 2025-01-07 08:35:20 |
|
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 32 WA * 24 RE * 1 |
ソースコード
#include<bits/stdc++.h>
using namespace std;
template<class S, class T> inline S min_L(S a,T b){
return a<=b?a:b;
}
inline void rd(int &x){
int k, m=0;
x=0;
for(;;){
k = getchar_unlocked();
if(k=='-'){
m=1;
break;
}
if('0'<=k&&k<='9'){
x=k-'0';
break;
}
}
for(;;){
k = getchar_unlocked();
if(k<'0'||k>'9'){
break;
}
x=x*10+k-'0';
}
if(m){
x=-x;
}
}
inline void wt_L(char a){
putchar_unlocked(a);
}
inline void wt_L(int x){
char f[10];
int m=0, s=0;
if(x<0){
m=1;
x=-x;
}
while(x){
f[s++]=x%10;
x/=10;
}
if(!s){
f[s++]=0;
}
if(m){
putchar_unlocked('-');
}
while(s--){
putchar_unlocked(f[s]+'0');
}
}
inline void wt_L(long long x){
char f[20];
int m=0, s=0;
if(x<0){
m=1;
x=-x;
}
while(x){
f[s++]=x%10;
x/=10;
}
if(!s){
f[s++]=0;
}
if(m){
putchar_unlocked('-');
}
while(s--){
putchar_unlocked(f[s]+'0');
}
}
inline void wt_L(const char c[]){
int i=0;
for(i=0;c[i]!='\0';i++){
putchar_unlocked(c[i]);
}
}
int H;
int W;
int main(){
int i, j, k;
long long p, res=0;
rd(H);
rd(W);
W = abs(W);
if(W==0 || H==0){
wt_L(0);
wt_L('\n');
return 0;
}
res += H;
W--;
k = H - 1;
for(i=1;;i++){
if(k >= i && i <= W){
res += (long long) i * i;
k -= i;
W -= i;
continue;
}
if(k >= i){
res += (long long) i * W;
break;
}
p = (long long) k * i + (long long) (i - k) * (i - 1);
res += W / k;
W %= k;
res += (long long)min_L(W, k)* i;
if(W > k){
res += (long long) (W - k) * (i - 1);
}
break;
}
wt_L(res);
wt_L('\n');
return 0;
{
int arr[100], i, j, k, m;
for(H=1;H<15;H++){
for(i=0;i<100;i++){
arr[i] = 0;
}
arr[0] = H;
wt_L("H = ");
wt_L(H);
wt_L("\n");
for(m=0;m<53;m++){
wt_L(m);
wt_L(' ');
wt_L(arr[0]);
wt_L('\n');
for(i=0;i<arr[0];i++){
arr[i+1]++;
}
arr[0] = 0;
for(i=0;i<99;i++){
arr[i] = arr[i+1];
}
}
}
}
return 0;
}
// cLay varsion 20190721-1
// --- original code ---
// int H, W;
//
// {
// int i, j, k;
// ll res = 0, p;
//
// rd(H,W);
// W = abs(W);
// if(W==0 || H==0){
// wt(0);
// return 0;
// }
//
// res += H;
// W--;
//
// k = H - 1;
// for(i=1;;i++){
// if(k >= i && i <= W){
// res += (ll) i * i;
// k -= i;
// W -= i;
// continue;
// }
//
// if(k >= i){
// res += (ll) i * W;
// break;
// }
//
// p = (ll) k * i + (ll) (i - k) * (i - 1);
// res += W / k;
// W %= k;
//
// res += (ll) min(W, k) * i;
// if(W > k) res += (ll) (W - k) * (i - 1);
// break;
// }
//
// wt(res);
//
// return 0;
// {
// int i, j, k, m;
// int arr[100];
//
// for(H=1;H<15;H++){
// rep(i,100) arr[i] = 0;
// arr[0] = H;
// wtF("H = {H}\n");
// for(m=0;m<53;m++){
// wt(m,arr[0]);
// rep(i,arr[0]) arr[i+1]++;
// arr[0] = 0;
// rep(i,99) arr[i] = arr[i+1];
// }
// }
// }
//
// return 0;
// }
LayCurse