結果
問題 | No.853 河原の石 |
ユーザー |
![]() |
提出日時 | 2019-07-26 22:58:35 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 3,278 bytes |
コンパイル時間 | 2,286 ms |
コンパイル使用メモリ | 194,276 KB |
最終ジャッジ日時 | 2025-01-07 08:32:29 |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 35 WA * 22 |
ソースコード
#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 / i;W %= i;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 / i;// W %= i;//// 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;// }