結果
問題 |
No.505 カードの数式2
|
ユーザー |
![]() |
提出日時 | 2025-06-20 23:00:24 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,617 bytes |
コンパイル時間 | 2,929 ms |
コンパイル使用メモリ | 275,380 KB |
実行使用メモリ | 7,844 KB |
最終ジャッジ日時 | 2025-06-20 23:00:30 |
合計ジャッジ時間 | 4,703 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 27 WA * 2 |
ソースコード
/* ?????? ?????? ?????? ?????? D P ???? ?????? ?????? ?????? ?????? ??? l l? ?????? ?????? ?? OI ?? ?????? */ #include<bits/stdc++.h> using namespace std; #define int long long //#define eps 1e-9 //#define ENF 1e13 const int N=1e4; const int mod=1e9+7; inline int read() { int x=0,f=1;char ch=getchar(); while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();} while (ch>='0'&&ch<='9'){x=(x<<3)+(x<<1)+ch-48;ch=getchar();} return x*f; } void write(int x) { if(x<0)putchar('-'),x=-x; if(x<10)putchar(x+'0'); else write(x/10),putchar(x%10+'0'); } int n; int a[N]; int ans=LONG_LONG_MIN; void dfs(int u,int sum){ if(u==n+1){ ans=max(ans,sum); return; } dfs(u+1,sum+a[u]); dfs(u+1,sum-a[u]); dfs(u+1,sum*a[u]); // dfs(u+1,sum/a[u]); return; } signed main(){ // freopen("operations.in","r",stdin); // freopen("operations.out","w",stdout); n=read(); int Q=0; for(int i=1;i<=n;i++)a[i]=read(),Q+=(a[i]<0); if(a[1]<0&&Q==1){ int sum=a[1]; for(int i=2;i<=n;i++){ if(a[i]==0)continue; if(sum+a[i]<sum/a[i])sum/=a[i]; else sum+=a[i]; if(sum>=0){ dfs(i+1,sum); cout<<ans<<"\n"; return 0; } } cout<<sum<<"\n"; return 0; } dfs(2,a[1]); cout<<ans<<"\n"; return 0; } // ?????????????AC???? // ????????????????????????? // ?????????????????? // ???????????????????????????????????? // ??????????????????????????????? // ???????????? // ???????????? // ???????????? // ???????????????????? // ???????????????????? // ???????????????????????????????? // ??????????????????????? // ??????????? // ????????????? // ????Elysian_Realme??? // ????OIer???OIer??