# include # include #include # include #include #include #include # include # include # include # include # include # include # include # include # include # include # include # include # include # include # include # include # include # include # include # include # include # include #include #include #include using namespace std; using LL = long long; using ULL = unsigned long long; constexpr long long MOD = 1000000000 + 7; constexpr long long INF = std::numeric_limits::max(); const double PI = acos(-1); #define fir first #define sec second #define debug(x) cerr<<#x<<": "< Pll; typedef pair> Ppll; typedef pair>> Pbll; typedef pair>> Pvll; typedef pair Vec2; struct Tll { LL first, second, third; }; typedef pair Ptll; #define rep(i,rept) for(LL i=0;i=0;i--) LL h, w, n, m, k, s, t, q, sum, last, cnt, ans=INF,a[50]; string str; struct Edge { LL to, cost; }; vectorvec[100010]; bool f; char c; void YN(bool f) { if (f) cout << "YES" << endl; else cout << "NO" << endl; } void yn(bool f) { if (f) cout << "Yes" << endl; else cout << "No" << endl; } LL dfs(LL v,bitset<50> bi,LL mon,LL bef) { bi[v] = 1; mon += max((LL)0,a[v]-bef); bef += a[v]; bef %= 1000; LL rev = INF; bool f = 0; rep(i, n) { if (bi[i] == 0) f=1,rev = min(dfs(i, bi, mon, bef), rev); } if (f == 0)return mon; return rev; } int main() { cin >> n; rep(i, n)cin >> a[i]; rep(i, n) { bitset<50>bi; ans=min(ans,dfs(i, bi, 0, 0)); } return 0; }