結果
問題 |
No.4 おもりと天秤
|
ユーザー |
![]() |
提出日時 | 2017-04-16 01:43:01 |
言語 | C#(csc) (csc 3.9.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,298 bytes |
コンパイル時間 | 2,992 ms |
コンパイル使用メモリ | 105,728 KB |
実行使用メモリ | 19,072 KB |
最終ジャッジ日時 | 2024-07-18 21:26:37 |
合計ジャッジ時間 | 4,356 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 11 WA * 12 |
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc) Copyright (C) Microsoft Corporation. All rights reserved.
ソースコード
using System; using System.Collections.Generic; using System.Linq; class P { static int[] w; static bool[] dp; static bool dfs(int i, int sum, int goal) { if (dp[i]) { return dp[i]; } bool ret = false; if (goal == sum) { ret = true; } else if (i == 0) { ret = false; } else { ret = dfs(i - 1, sum, goal) || dfs(i - 1, sum + w[i], goal); } return dp[i] = ret; } static void Main(string[] _) { int n = int.Parse(Console.ReadLine()); w = new int[n]; dp = new bool[n]; _ = Console.ReadLine().Split(' '); int sum = 0; string ans = ""; for (int i = 0; i < n; i++) { w[i] = int.Parse(_[i]); sum += w[i]; } if (sum % 2 == 0) { sum /= 2; Array.Sort(w); if (sum <= w.Last()) { ans = dfs(n - 1, 0, sum) ? "possible" : "impossible"; } else { ans = "impossible"; } } else { ans = "impossible"; } Console.WriteLine(ans); } }