結果
問題 | No.77 レンガのピラミッド |
ユーザー |
|
提出日時 | 2018-06-04 23:27:56 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 2 ms / 5,000 ms |
コード長 | 639 bytes |
コンパイル時間 | 1,303 ms |
コンパイル使用メモリ | 161,480 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-06-30 09:49:07 |
合計ジャッジ時間 | 2,153 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 5 |
other | AC * 20 |
コンパイルメッセージ
main.cpp: In function ‘int main()’: main.cpp:22:9: warning: ‘top’ may be used uninitialized in this function [-Wmaybe-uninitialized] 22 | if(top>i){ | ^~
ソースコード
#include<bits/stdc++.h> using namespace std; int main(){ int n,in,sum=0,ans=0; vector<int> v; cin >> n; while(cin >> in){ v.push_back(in);sum+=in; } int tmp=0,l=0,top; for(int i=1;;i+=2){ tmp+=i; if(tmp>sum) break; if(i==1) l++; else l+=2; top=i/2+1; } int p=(l>n)?l:n; for(int i=0;i<p;i++){ if(i>=n) continue; if(top>i){ if(i+1<v[i]) ans+=v[i]-(i+1); }else{ int b=(top-(i+1-(l/2+1))>0)?top-(i+1-(l/2+1)):0; if(b<v[i]) ans+=v[i]-b; } } cout << ans << endl; return 0; }